我用django制作了一个应用程序,使用redis和celery执行一些异步任务。 我使用celery任务执行一些存储过程。完全执行此SP需要5到30分钟(取决于记录的数量)。 一切都很好。 但我需要能够执行几次任务。但是现在当我运行task和另一个用户也运行这个任务时,这两个任务是同时执行的。 我需要任务进入队列,只有在第一个任务完成时才执行。 我的设置.py公司名称:
BROKER_URL = 'redis://localhost:6379/0'
CELERY_IMPORTS = ("pc.tasks", )
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_RESULT_BACKEND='djcelery.backends.cache:CacheBackend'
在任务.py在
^{pr2}$我这样称呼我眼中的任务:
conci.delay(prov,DateV);
如何创建或设置tak的队列列表,并且只有在前一个tak完成时才执行每个任务
提前谢谢
你可以限制工人的任务,因为我假设你一次只需要一个工人,所以打电话给djcelery时只需启动一个工人。在
例如,您可以使用lock(来自我的一个项目):
相关问题 更多 >
编程相关推荐