【问题标题】:Celery Tasks not being assigned by Broker经纪人未分配芹菜任务
【发布时间】:2016-10-22 22:36:29
【问题描述】:

我已将一个 API 与我的 Django 网站集成。对于通过 API 完成的订单,需要发送和接收 5 个请求和响应。最后 2 个请求对于按顺序发送并不是非常重要。我已将这 2 个请求分配给 celery 任务。

场景:我发出一个请求来处理 10 个订单,因此每个订单有 5 个请求,其中 2 个分配给 celery 任务。因此 celery 总共有 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 请求,这些请求一个接一个地按顺序发出,响应保存在数据库中。

请指教

【问题讨论】:

    标签: python django celery django-celery celery-task


    【解决方案1】:

    替换

    process_jobs.delay(self, job, **response_arg)
    

    process_jobs.delay(job, **response_arg)
    

    如果这不能解决您的问题,请分享更多细节以找到解决方案。

    【讨论】:

    • 好的,让我检查一下,然后通知您。
    猜你喜欢
    • 1970-01-01
    • 2017-06-02
    • 2019-07-08
    • 2015-06-23
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多