开始
实现定时任务
这里我们只写了一个骨架
隔一段时间调用这个方法,把数据库内应发未发的消息取出来。重新再发一遍,然后更新所有的消息重发的次数。
下面来实现这个方法
取出所有数据。应发未发的。
循环应发未发的消息,进行处理。判断的重发的次数有没有达到限制。
设置为死信,并继续循环。
消息重发的逻辑。直接把这段复制过来。
上面注入RabbitTemplate
orderService
注入。
注释上面的发送,用我们刚才写的发送
上面几个也用不到 注释掉
现在的逻辑就是启动后会发消息到restaurant队列里面。但是restaurant服务没有启动,所以消息会停留在restaurant队列里面。
启动orderService做测试
重复发送 最多5次。
为了调试方便设置5秒重发一次
无效绑定的语句。
不加上这个就不知道找mapper这个注解。
postman发一个订单请求过来测试
打开数据库的表,没有应发 未发的消息。
没有send的字段。
清空表内之前的测试数据
测试找不到交换机或者队列。
直接把这个交换机删掉
在发送一条、消息。
消息重发了四次
刷新
超过5次被设置为死信