0
我使用celery 4
和RabbitMQ
作为代理。我有限制Queue
(大小== 200)。我的主要代码如下:当代理队列已满时,Python Celery task.delay()
for i in range(200):
tasks.delay(i)
它的工作原理,如果我的范围< =大小。如果我把这样的事情:
for i in range(2000):
tasks.delay(i)
和大小限制是200,Queue
就会充实和任务的其余部分将被跳过。
任何人都可以请解释如何处理这种情况?我需要等到Queue
将免费和insert
另一个任务。
谢谢
完美的感谢,如果我使用redis我会有同样的问题?我只是期望,这个延迟会等到队列被释放。 – wilima
我认为与Redis有些不同。由于Redis只是一个关键/值数据库,它并不像RabbitMQ那样拥有队列的概念。这意味着在Redis中没有队列限制,但在Reids中有一个限制,即为Redis分配多少内存和/或磁盘空间。 这就是为什么芹菜非常擅长缩放它,所以如果需要可以添加更多的工人。希望这有助于 – xirdneh
@wilima,顺便说一句。如果答案确实帮助你。你能把它标记为正确的答案吗?谢谢。 – xirdneh