排队其他项目的芹菜任务

时间:2020-02-03 08:07:42

标签: python celery

我有一个使用celery处理任务的项目,还有另一个项目,这是一个API,可能需要排队将芹菜工人处理的任务。 但是,这两个项目是分开的,我无法将任务导入API之一。

过去我曾经使用Sidekiq(相当于Celery在Ruby中的等效语言),例如,如果使用相同的格式/有效负载,则可以通过将Redd数据存储在其他语言/应用/进程中来推送任务。 >

芹菜有可能发生类似的事情吗?我找不到任何相关的东西。

1 个答案:

答案 0 :(得分:1)

是的,在芹菜中使用send_tasksignatures可以做到这一点。假设fetch_data是单独代码库中的函数,则可以使用以下方法之一调用它

send_task

celery_app.send_task('fetch_data', kwargs={'url': request.json['url']})

app.signature

celery_app.signature('fetch_data', kwargs={'url': request.json['url']).delay()

您只需将函数名称指定为字符串,而无需将其导入代码库中。

您可以从https://www.distributedpython.com/2018/06/19/call-celery-task-outside-codebase/

详细了解