【发布时间】:2011-11-02 20:48:06
【问题描述】:
我目前正在处理一个需要处理大量重复性工作的项目。基本上,当一项工作完成后,我想在 15 分钟后重新开始。
作业集随时间动态变化,因此我需要监视新作业和已删除作业。 每项工作都需要一些时间来处理,因此我需要能够扩展。我将有一个网站作为前端来管理这些工作。
我正在考虑使用 MongoDB(带分片)来存储作业。 然后我可以创建一个“工作代理”来经常查询数据库以查看是否有任何工作准备好并使用例如RabbitMQ 开始在一组工作人员上工作。
但该设置存在一些非常明显的问题:
- “作业代理”是瓶颈和单点故障
- 对可能非常庞大的集合频繁查询 MongoDB 似乎是一个糟糕的解决方案。
我不受技术的限制,但我根本不知道我应该如何为此布局架构。有什么想法吗?
【问题讨论】:
标签: architecture cron scalability scheduled-tasks amqp