我有一些使用Amazon API的任务,限制为1 req /秒。
因此,我想将使用Amazon API的任务分组,并将它们排成队列。
我所知道的是如何将队列与每个任务相关联。但不知道如何删除特定队列中的并发。
有什么想法吗?
非常感谢! :)
答案 0 :(得分:7)
单个工作程序从并发等于1的队列中消耗,可确保按顺序处理任务。换句话说,您可以创建一个特殊队列,并且只运行一个芹菜工作者,其并发性等于一个:
celery -A tasks worker -Q amazon_queue -c 1
并将任务提交到该队列:
tasks.add.apply_async(args=[1,2], kwargs={}, queue='amazon_queue')
或者对某些任务类型使用automatic routing。