V 友们,用 celery 实现多平台多任务??

2019-12-22 23:10:31 +08:00
 johnman
新手,有以下功能希望实现

ubuntu 的 django 接收到用户上传的源文件。希望以下子任务

1、本机 ubuntu worker 异步对源文件修改成目标文件
2、本机 ubuntu worker 上传文件至云平台,并获得资源地址
3、windows worker 获取资源地址(必须要 windows 进行处理),下载资源,对目标文件进一步加工
4、windows worker 上传最终文件至云平台,并获的资源地址

卡住好多天了,没想出来 celery 的实现思路是什么? Chain 或者 group 可以跨机器么以及处理结果的跨机器处理?
3710 次点击
所在节点    Python
6 条回复
JasperYanky
2019-12-22 23:51:15 +08:00
退一万步说 两个系统不行么
copie
2019-12-22 23:59:03 +08:00
cz5424
2019-12-23 01:04:28 +08:00
给队列命名,win 启动 win 专有的队列,ubuntu 启动 ubuntu 的队列,然后就是 ubuntu 做完任务发一个 win 任务
locoz
2019-12-23 10:45:06 +08:00
消息队列本身就是用来解耦的啊,多平台多任务是天生就有的效果。直接简单拆成多个队列就好了,一个任务一个队列。让必须要满足某个要求的任务只被满足要求的消费者进行消费,就不会出现必须要 Windows 的任务被 Ubuntu 的机器给处理了的情况了。
wd
2019-12-23 11:19:40 +08:00
总结下你要干的事情,接收上传的文件,修改文件并传到云平台,下载下来对文件修改,再次上传。打了半天字感觉你这个需求太多可能性了和解决办法了,都删掉了。....
johnman
2019-12-25 22:43:32 +08:00
搞定了
多队列路由,各 worker 监控各自队列即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/631323

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX