V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · Dec 22, 2019 · 4420 views
    This topic created in 2318 days ago, the information mentioned may be changed or developed.
    新手,有以下功能希望实现

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

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

    卡住好多天了,没想出来 celery 的实现思路是什么? Chain 或者 group 可以跨机器么以及处理结果的跨机器处理?
    Supplement 1  ·  Dec 25, 2019
    搞定了
    多队列路由,各 worker 监控各自队列即可
    多谢各位
    6 replies    2019-12-25 22:43:32 +08:00
    JasperYanky
        1
    JasperYanky  
       Dec 22, 2019
    退一万步说 两个系统不行么
    copie
        2
    copie  
       Dec 22, 2019 via iPhone
    cz5424
        3
    cz5424  
       Dec 23, 2019 via iPhone
    给队列命名,win 启动 win 专有的队列,ubuntu 启动 ubuntu 的队列,然后就是 ubuntu 做完任务发一个 win 任务
    locoz
        4
    locoz  
       Dec 23, 2019
    消息队列本身就是用来解耦的啊,多平台多任务是天生就有的效果。直接简单拆成多个队列就好了,一个任务一个队列。让必须要满足某个要求的任务只被满足要求的消费者进行消费,就不会出现必须要 Windows 的任务被 Ubuntu 的机器给处理了的情况了。
    wd
        5
    wd  
       Dec 23, 2019 via iPhone
    总结下你要干的事情,接收上传的文件,修改文件并传到云平台,下载下来对文件修改,再次上传。打了半天字感觉你这个需求太多可能性了和解决办法了,都删掉了。....
    johnman
        6
    johnman  
    OP
       Dec 25, 2019
    搞定了
    多队列路由,各 worker 监控各自队列即可
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6049 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 03:06 · PVG 11:06 · LAX 20:06 · JFK 23:06
    ♥ Do have faith in what you're doing.