## 介绍
spring Taks是spring框架提供的任务调度的工具 可以按照约定的时间自动执行某个代码逻辑
定位:定时任务框架
作用:定时自动执行某段java代码
应用的场景
1 信用卡每月的还款提醒
2 火车票售票系统处理未支付的订单
3 入职纪念日为用户发送通知
!!!注意:只要是需要定时处理的场景都可以使用springTask
cron表达式
它其实是一个字符串 通过cron表达式可以定义任务触发的时间
构成的规则:分为6或者7个域,由空格分隔开来,每个域代表一个含义
每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)
通配符:
1* 表示所有值;
? 表示未说明的值,即不关心它为何值;
- 表示一个指定的范围;
, 表示附加一个可能值;
/ 符号前表示开始时间,符号后表示每次递增的值;
cron表达式案例:
*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
当然我们不会的话也可以通过cron表达式在线生成器:https://cron.qqe2.com/
spring Taks的使用步骤
1 导入maven坐标
2 启动类添加注解@EnableScheduling开启任务调度
3 自定义定时任务类
WebSocket介绍
Websocket是基于TCP的一种新的网络协议,它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并且进行双向数据传输。
!!!注意:建立的是持久性的连接不是永久性的连接。
HTTP协议和WebSocket协议对比:
1 HTTP是短连接
2 WebSocket是长连接
3 HTTP通信是单向的,基于请求响应格式
4 WebSocket支持双向通信
5 HTTP和WebSocket底层都是TCP连接
应用的场景:
1 视频弹幕
2 网页聊天
3 体育实况的更新
4 股票几斤报价实时更新
入门案例*:
实现步骤:
1 直接使用websocket.html页面作为websocket客户端
2 导入websocket的maven坐标
3 导入websocket服务端组件websocketserver 用于和客户端通信
4 导入配置类websocketconfiguration 注册websocket的服务端组件
5 导入定时任务类websocketask 定时向客服端推送数据
websocket缺点:
1 服务器长期维护长链接需要一定的成本
2 各个浏览器支持的程度不一样
3 websocket是长连接,受网络限制比较大,需要处理好重连
!!!websocket不能完全取代http只能在特定的场景下使用。