搜索

奇思异想]使用RabbitMQ实现定时任务

gecimao 发表于 2019-07-28 00:54 | 查看: | 回复:

  工作中经常会有定时任务的需求,常见的做法可以使用Timer、Quartz、Hangfire等组件,这次想尝试下新的思路,使用RabbitMQ死信队列的机制来实现定时任务,同时帮助再次了解RabbitMQ的死信队列。

  7. 消费者确认有下个任务,再往死信队列插入一条消息,并设置过期时间为任务执行时间

  1. (WebApi)创建任务,并根据设置创建子任务,把任务数据写入数据库

  PendingTask为死信队列Exchange,死信队列的队列名(Queue Name)会包含Task、index、timeFlag的信息,帮助跟踪队列和子任务,同时也起到唯一标识的作用。

  任务与相应的子任务也写入了MongoDB,这里假设子任务可能是邮件发送任务:

  创建了一个临时死信队列,队列名称包含任务Id,子任务下标、以及子任务执行时间,并往其写入一条消息:

本文链接:http://kingstonflowers.net/dingshirenwu/972.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部