java吧 关注:1,273,701贴子:12,786,175
  • 10回复贴,共1
求助

SpringBoot整合RocketMQ的问题

只看楼主收藏回复

请问rocketmqTemplate怎么设置定时消息(不是延时消息)啊?例如在某个时间+两天发送消息


IP属地:四川来自iPhone客户端1楼2023-01-13 18:04回复
    dd


    IP属地:四川来自iPhone客户端2楼2023-01-13 18:35
    回复
      2025-08-12 21:00:56
      广告
      不感兴趣
      开通SVIP免广告
      你不会用定时任务吗,非要给rocketmq出难题


      IP属地:浙江来自Android客户端3楼2023-01-14 00:31
      收起回复
        比如下单时间: order_create_time 是 2023-01-04,req_time需求时间是 2023-01-05,超过需求时间一天对其进行超时处理
        select order_id from order where req_time < DATE_SUB(now() ,interval 1 day) AND order_create_time >= DATE_SUB(now() , interval 30 day) AND state = '处于需求中'
        就定时任务上面SQL,一分钟执行一次去扫,然后找出后修改状态state = '已超时'
        大概是这么个思路,具体多长时间执行一次,扫多大范围内的数据,要看你业务的具体需求。
        order_creat_time req_time上都加上索引。这种方式没啥问题。


        IP属地:上海4楼2023-01-14 22:01
        收起回复
          时间轮算法的实现是rocket内置每s查看一次时间轮,时间轮上根据s级别,构造了一个链表,每个投递的消息都在对应的时间轮分片上,所以每次只要读取时间轮第一个分片,就能精确投递消息,还不用轮询所有的定时消息,基于数据库的本质还是轮询,效率是肯定比不上时间轮的


          IP属地:浙江来自Android客户端5楼2023-01-16 14:33
          回复