1
HFcbyqP0iVO5KM05 2017 年 5 月 5 日 via Android
机器 A,B,C 上的 celery_app 用同一个 broker
|
2
KIDJourney 2017 年 5 月 5 日
用 broker 实现的分布式。
|
3
VicYu 2017 年 5 月 5 日
A 机器的 Task broker 比如指定到 redis://10.10.10.10:12345/0
B 机器,C 机器的 worker,启动时候(celery worker -b redis://10.10.10.10:12345/0)或者在配置时同样指定 redis://10.10.10.10:12345/0 |
4
NaVient OP |
5
neoblackcap 2017 年 5 月 5 日
|
6
kinghui 2017 年 5 月 5 日 @NaVient xx.delay 的这个 xx 既可以是具体的函数, 也可以是一个 Celery 的签名, 参见 http://docs.celeryproject.org/en/latest/userguide/canvas.html#signatures
|
7
NaVient OP |
8
zhengxiaowai 2017 年 5 月 5 日
其实,我觉得不应该部署在其他机器上的,起码从部署上来说多了不少麻烦。结构上也变得耦合,下次修改 task 的话要在多处修改。
我觉得应该封装成远程调用的方式,比如 grpc、http 这样子的比较好 |
9
julyclyde 2017 年 5 月 5 日
@zhengxiaowai 多处修改倒不是难事,多台机器发同样的文件而已。
你用 grpc 的话,实际执行工作的 worker 也不能只有一台吧,其实没啥区别 |
10
tuteng 2017 年 5 月 6 日
同意 @VicYu @neoblackcap @kinghui 可以通过 send_task 发布任务,执行远程调用
具体可以参考这个 https://github.com/mher/flower celery 的管理工具 |