我正在尝试将RabbitMQ实现为现有web应用程序中的通用任务队列。但是,我还需要运行一个计划好的任务,在一个设置的间隔内聚合一些用户数据。
我知道任务调度并不在rabbitMQ的核心设计中,但似乎可以通过死信交换来完成。但我担心的是,当我有多个运行web应用程序的实例时,任务将被安排多次。
有什么方法可以让我构建这个结构来避免这个问题呢?如果可能的话,也许可以限制连接的数量?
发布于 2015-07-27 18:32:59
就像你说的,它不在RabbitMQ的核心设计中。
您可以查看RabbitMQ博客,了解它们是如何解决信号量队列问题的。https://www.rabbitmq.com/blog/2014/02/19/distributed-semaphores-with-rabbitmq/
“当我有多个运行web应用程序的实例时,任务将被安排多次。”这是真的,但是你可以稍微改变一下你的设置。以太引入了一个“共享内存”(比如带有主键强制执行的db )。并确保您发布到兔子后,您的交易成功。或者,您可以看看某种“循环”交换,并完全在RabbitMQ上下文(https://github.com/jbrisbin/random-exchange)中利用它。
https://stackoverflow.com/questions/31656413
复制相似问题