Pro*_*eus 14 python django rabbitmq celery
你应该在哪里更新芹菜设置?在远程工作人员或发件人?
例如,我有一个使用Django和Celery的API.API通过代理(RabbitMQ)将远程作业发送给我的远程工作人员.工作者正在运行python脚本(不使用Django),有时这些工作会产生子任务.
我在双方都创建了芹菜设置(发送者和工作者),即他们都需要设置BROKER_URL.但是,假设我要添加设置CELERY_ACKS_LATE = True,最后我将此设置添加到?每个远程工作人员或发件人(API)?
API和远程工作者都连接到同一个Broker,每个都以不同的方式启动芹菜.API通过Django创建芹菜实例__init__.py,工人通过主管启动芹菜,即celery -A tasks worker -l info
django celery设置只影响在django服务器上运行的工作程序.
如果你所有的工作人员都是远程工作者(就像我这样做的话),那么在发送者方面,你所需要的只是将必要的配置放到任务队列中.
并且需要在远程工作人员上设置所有其他设置.
对于任务,在发送方,我需要做的就是定义任务签名,如下所示:
@app.task(name='report_task')
def reportTask(self, link):
pass
Run Code Online (Sandbox Code Playgroud)
然后在工作者方面,您需要创建一个具有相同名称并指向同一代理的新Celery应用程序; 对于其他芹菜设置,您需要在远程工作人员上声明它们.
并在远程工具上实现任务逻辑(只要具有相同的任务名称和函数参数,每个工作者就可以拥有不同的任务逻辑)
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |