深入浅出spring boot 2.x 07-spring异步线程池&消息&定时任务&websocket【笔记】

#####spring异步线程池
如报表,因为业务量大,比较耗时

  • 实现AsyncConfigurer接口,使用@EnableAsync开启异步可用
  • 在使用时,添加注解@Async即可
异步消息JMS
  • 点对点模式
  • 发布订阅模式,为了更好的扩展,更多系统使用监控得到消息,此项用的多。
ActiveMQ
  • springboot配置
    spring.JMS.
    spring.activemq.
  • 发送消息
    使用jmsTemplate.convertwAndSend发送消息,默认转换规则SimpleMessageConverter
  • 接收消息
    注解@JmsListener接收消息
  • 发送或接收对象,对象需要序列化,并且在配置文件中加入到信任列表中,spring.Activemq.packages.trusted=对象所在包名,java.lang,因为对象中的id属性为Long,信任所有包为trust-all
  • RabbitMQ
    Amqp的rabbitmq
    springboot配置spring.rabbitmq.
  • ConfirmCallback接口的Confirm方法为回调方法
    rabbitTemplate进行操作,
    rabbitTemplate.setConfirmCallback设置回调
    rabbitTemplate.ConvertAndSend发送消息
    @RabbitListener接收消息
定时任务

原因:统计,耗时操作,月末,年末等统计报表
@EnableScheduling启用
@Scheduled配置如何定时

  • cron表达式
    秒 分 时 天 月 星期 年,最后一项年可以不配置,通配符如下:
    任意值 *
    ? 不指定值,用于处理天和星期配置的冲突
    _ 指定时间区间
    / 指定时间间隔执行
    ,列举多个项
    第几个#
    L 最后的
websocket

websocket协议,浏览器与服务器全双工通信
@ServerEndpoint定义端点服务器类
@onOpen 连接建立成功
@onClose 连接关闭
@onMessage 接收消息
@OnError 错误时调用

  • 通过子协议STOMP兼容websocket不支持的浏览器
    @EnableWebSockitMessageBroker注解启动websockit的子协议stomp,通过实现WebSockitMessageBrokerConfigurer的两个方法,springboot使用SimpMessagingTemplate进行消息转发,
    @MessageMapping定义websocket请求路径,并使用模板进行转发。如果使用了springsecurity可以使用Principal获取当前用户信息
    @SendTo定义结果发送到特定路径
    客户端可使用Sockjs进行连接

猜你喜欢

转载自blog.csdn.net/i6725545/article/details/87862981