Kar*_*arl 2 python django amazon-ec2 redis celery
Currenty我有一个Ec2实例来处理API请求
问题是API和芹菜工作者的代码库是相同的.因为e,g
我用 cutsomer.process_order(order_id)
然后工人完成其余的工作.
有没有办法将API与工作代码分开.我想在单独的代码库中创建API,并在单独的代码库中创建工作者
您的API代码可以调用任何Celery任务,而无需使用任务源代码.Celery有一个称为签名的功能:
from celery import Celery
app = Celery(...)
process_order = app.signature('your-other-project.tasks.process_order')
result = process_order.delay(order_id) # standard calling api works
print(result.get())
Run Code Online (Sandbox Code Playgroud)
只需确保您的API和工作者连接到同一个消息代理,并且您的工作人员实际上具有签名中指定的任务.