V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
johnman
V2EX  ›  Python

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

  •  
  •   johnman · 2019-12-22 23:10:31 +08:00 · 2966 次点击
    这是一个创建于 707 天前的主题,其中的信息可能已经有所发展或是发生改变。
    新手,有以下功能希望实现

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

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

    卡住好多天了,没想出来 celery 的实现思路是什么? Chain 或者 group 可以跨机器么以及处理结果的跨机器处理?
    第 1 条附言  ·  2019-12-25 22:43:53 +08:00
    搞定了
    多队列路由,各 worker 监控各自队列即可
    多谢各位
    6 条回复    2019-12-25 22:43:32 +08:00
    JasperYanky
        1
    JasperYanky   2019-12-22 23:51:15 +08:00
    退一万步说 两个系统不行么
    copie
        2
    copie   2019-12-22 23:59:03 +08:00 via iPhone
    cz5424
        3
    cz5424   2019-12-23 01:04:28 +08:00 via iPhone
    给队列命名,win 启动 win 专有的队列,ubuntu 启动 ubuntu 的队列,然后就是 ubuntu 做完任务发一个 win 任务
    locoz
        4
    locoz   2019-12-23 10:45:06 +08:00
    消息队列本身就是用来解耦的啊,多平台多任务是天生就有的效果。直接简单拆成多个队列就好了,一个任务一个队列。让必须要满足某个要求的任务只被满足要求的消费者进行消费,就不会出现必须要 Windows 的任务被 Ubuntu 的机器给处理了的情况了。
    wd
        5
    wd   2019-12-23 11:19:40 +08:00 via iPhone
    总结下你要干的事情,接收上传的文件,修改文件并传到云平台,下载下来对文件修改,再次上传。打了半天字感觉你这个需求太多可能性了和解决办法了,都删掉了。....
    johnman
        6
    johnman   2019-12-25 22:43:32 +08:00
    搞定了
    多队列路由,各 worker 监控各自队列即可
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4160 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 06:20 · PVG 14:20 · LAX 22:20 · JFK 01:20
    ♥ Do have faith in what you're doing.