day26 Spring Task定时任务与WebSocket双向通信

1. 今天做了什么

  1. 需求
    1. 未支付,超时
    2. 未点击完成
    3. 来单提醒
    4. 催单
  2. spring Task定时任务工具
    1. 定时自动触发
    2. cron表达式定义触发时间,可以使用在线生成器自动生成
    3. 使用
      1. 导入坐标
      2. 启动类添加@EnableScheduling开启任务调度
      3. 自定义定时任务类
        1. @Component注解加入IOC容器
        2. 方法添加@Scheduled(cron = "")
    4. 业务逻辑
      1. 未支付,超时每分钟检查一次
      2. 未点击完成,每天检查一次
  3. WebSocket双向数据传输
    1. 与HTTP的对比
      1. HTTP单向的,请求响应模式,客户端请求,服务端响应,短连接,一次请求是一次连接,HTTP服务端无法主动向客户端发送消息
      2. WebSocket双向的,建立长连接后,可以持续进行双向消息
      3. 底层都是tcp
    2. 应用场景
      1. 网页聊天
      2. 实况更新等
    3. 实现流程
      1. 导入maven坐标
      2. 添加配置类
      3. 注解
    4. 业务逻辑
      1. 来单提醒与催单都是向管理端网页发送消息
      2. 约定消息格式是json,用字段type区分来单提醒与催单
      3. 支付成功的通知会调用业务层的void paySuccess(String outTradeNo)方法,在该方法中添加来单提醒
      4. 添加用户端接口,完成催单业务

2. 核心知识点

  1. spring Task
  2. WebSocket

3. 深度思考

4. 踩过的坑

5. 遗留问题 / 想不通