Asyncio + Celery:分发任务

时间:2019-07-08 22:19:44

标签: python-3.x celery celery-task asyncio

我正在使用Celery和asyncio,并且具有一些CPU绑定功能。

我的问题是: 当我运行一个任务时,它需要X秒。当我尝试运行10个任务时,大约需要10秒钟。

当前实现类似于:

job = group(custom_func.s(param1, param2, param3, param4, param5) for param3, param4 in data)
job_result = job.apply_async()
job_result.get()


@celery_app.task
def custom_func(param1, param2, param3, param4, param5):
    loop = asyncio.new_event_loop()
    coro = doing_some_cpu_bound_things()
    result = loop.run_until_complete(coro)
    loop.close()
    return result

在搜索了可能的解决方案之后,我发现了以下问题: Celery parallel distributed task with multiprocessing

但是我不确定这是否是我的问题的根本原因以及如何在我的情况下正确使用它。

关于我在做什么错的任何想法吗?

0 个答案:

没有答案