我已将API与我的Django网站集成在一起。对于通过API的完整订单,需要发送和收到5个请求和响应。最后两个请求并不重要。我已将这两个请求分配给芹菜任务。
方案:我发送了一个处理10个订单的请求,因此每个订单都有5个请求,其中2个已分配给芹菜任务。因此,芹菜总共有10个任务,这些任务将由经纪人分配。这些任务中的每一个都有2个请求。
结果:在进行API调用时,未分配芹菜所有10个任务,因此,对于每组10个订单,完成的订单是5或4或4等。每次都没有处理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请求,这些请求是一个接一个地做出的,并在db中保存的响应。
请建议
替换
process_jobs.delay(self, job, **response_arg)
process_jobs.delay(job, **response_arg)
如果这不能解决您的问题,请分享更多详细信息以找到解决方案。