【发布时间】:2012-03-04 17:18:05
【问题描述】:
我有大约 1000-10000 个作业,我需要每分钟左右持续运行这些作业。有时会有新工作进来或需要取消其他工作,但这种情况很少见。工作被标记并且必须在工人之间受到干扰,他们每个人只处理特定类型的工作。
现在我想使用 cron 并在某个代理中加载整个作业数据库——RabbitMQ 或 beanstalkd(虽然还没有决定使用哪一个)。
但这种方法对我来说似乎很难看(使用计时器来模拟无穷大,加载整个数据库等)并且有缺点:例如,如果某种作业的处理速度比添加到队列中的速度慢,它可能会不堪重负并且消息经纪人会吃掉所有的 ram,交换然后停止。
还有其他可能吗?我在工作中没有使用正确的模式吗? (可能我不需要队列什么的..?)
附言如果这很重要,我正在使用 python。
【问题讨论】:
标签: python queue rabbitmq task-queue beanstalkd