Python的分布式调度工具Celery--基础功能

浏览: 2729

最近一直再找调度工具,发现Python下的分布式任务工具Celery很不错,正在做尝试。最近几篇博客会介绍这个工具。


Celery的文档地址:

http://docs.celeryproject.org/en/latest/index.html

0.安装及其他准备工作

pip install -U Celery

由于Celery需要有地方存储调度信息Brokers,目前stable支持的是RabbitMQ、Redis,

我使用了RabbitMQ,就使用docker启动了一个,做测试。

1.基本测试

参考文档:First Steps with Celery

http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html

这一步主要按照示例来介绍:

step1:新建tasks.py

其中add函数用来测试调度。

from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
@app.task
def add(x, y):
    return x + y

step2:启动服务

启动:

$ celery -A tasks worker --loglevel=info


关闭:

  按 Ctrl+C

或作为后台服务启动

celery multi start celery -A tasks -l info
celery multi stop celery -A tasks -l info

 

step3:同一台机器python中调用task

>>> from tasks import add
>>> result = add.delay(4, 4)
#等价于
>>> add.apply_async([4,4])
#可以设置延时 为秒
>>> add.apply_async([4,4],countdown=10)

这时候调度就起作用了。


step4:多台机器调用task

和单机器调用命令一样,只是会随机分布到不同机器里面。


3.下一步测试

如何设计不同流程的workflow,并行+串行?

如何调用shell脚本,如何调用制定某一台机器运行?

如何监控?

推荐 4
本文由 seng 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册