苍穹外卖学习day05

前言

今天事情很多,没有学习多少,学了几个新的知识点。

今日所学内容

1.Springtask:按照约定的时间自动执行代码

用cron表达式去匹配时间

如果不会写cron表达式可以在在线平台生成

https://cron.qqe2.com/

springtask执行步骤

@Scheduled(cron = "0 * * * * ?")
    public void processTimeoutOrder(){

        LocalDateTime time = LocalDateTime.now().plusMinutes(-15);

        List<Orders> list = orderMapper.getByStatusAndOrderTimeOutLT(Orders.PENDING_PAYMENT,time);

        if(list != null && list.size() > 0){
            for (Orders orders : list) {
                orders.setStatus(Orders.CANCELLED);
                orders.setCancelReason("超时订单");
                orders.setCancelTime(LocalDateTime.now());
                orderMapper.update(orders);
            }
        }
    }

2.WebSocket

1. WebSocketConfiguration 配置类

ServerEndpointExporter:自动扫描带有 @ServerEndpoint 注解的类,将其注册为 WebSocket 端点

@Configuration
public class WebSocketConfiguration {
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}
2. WebSocketServer WebSocket 端点类
@Component
@ServerEndpoint("/ws/{sid}")
public class WebSocketServer {
    private static Map<String, Session> sessionMap = new HashMap();
    
    // 连接建立、消息接收、连接关闭的处理方法
    // ...
}

3.会话管理
  • 作用:存储所有活跃的客户端会话

  • Key:客户端标识 (sid)

  • Value:WebSocket 会话对象 (Session)

  • 特点:静态变量,所有实例共享(因为是单端点)

private static Map<String, Session> sessionMap = new HashMap();

总结

今天学习的时间很少,但还是学了几个新的知识,也算是有收获的一天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值