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