我已经在我的Django网站上集成了一个API。对于通过API的完整订单,需要发送和接收5个请求和响应。最后2个请求不是非常重要的顺序发送。我已将这2个请求分配给芹菜任务。
场景:我发出处理10个订单的请求,因此每个订单有5个请求,其中2个被分配给芹菜任务。因此,芹菜共有10个任务,由经纪人分配。每个任务都有2个请求。
结果:在进行API调用时,并未为Celery分配所有10个任务,因此对于每组10个订单,完成的订单为5或4或6,依此类推。每次有2或3个未处理的任务。我不确定是什么导致任务不由经纪人分配。
我正在使用delay()命令来调用任务。我的task.py文件看起来有点像这个
from celery import shared_task
from celery.utils.log import get_task_logger
logger = get_task_logger(__name__)
@shared_task
def process_jobs(client_obj, job, **kwargs):
# do task related work
对此任务的调用如下所示
process_jobs.delay(self, job, **response_arg)
process_jobs包含2个HTTP请求,这些请求是一个接一个地顺序生成的,并且响应保存在数据库中。
请咨询
答案 0 :(得分:0)
替换
process_jobs.delay(self, job, **response_arg)
带
process_jobs.delay(job, **response_arg)
如果这不能解决您的问题,请分享更多细节以找到解决方案。