celery+rabbitmq(Docker) quick start

由于项目需要,研究了一下 celery和rabbitmq

首先保证你有python(我用的Python3)

celery部分:

安装celery

pip install celery

然后创建一个tasks.py 文件

from celery import Celery

app = Celery('tasks', broker='amqp://guest:guest@127.0.0.1:5672//')

@app.task
def add(x, y):
    return x + y

这样celery 部分就ok了。

-------------------------

rabbitmq 部分:

首先你需要在本地安装docker, 安装过程请自行百度,这里不赘述。

然后 不需要单独pull docker image 直接在本地运行下面docker 指令就会自动启动rabbitmq

docker run -d --name some-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3-management

接下来 在终端中运行下列命令,开启一个worker(相当于MQ 的消费者)

celery -A tasks worker --loglevel=info

output

(py3env) hostname:test$ celery -A tasks worker --loglevel=info

 -------------- celery@hostname.local v4.1.0 (latentcall)
---- **** -----
--- * ***  * -- Darwin-17.5.0-x86_64-i386-64bit 2018-05-02 17:56:20
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         tasks:0x1024b0f28
- ** ---------- .> transport:   amqp://guest:**@127.0.0.1:5672//
- ** ---------- .> results:     disabled://
- *** --- * --- .> concurrency: 8 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery


[tasks]
  . tasks.add

[2018-05-02 17:56:21,248: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2018-05-02 17:56:21,577: INFO/MainProcess] mingle: searching for neighbors
[2018-05-02 17:56:23,798: INFO/MainProcess] mingle: all alone
[2018-05-02 17:56:25,158: INFO/MainProcess] celery@hostname.local ready.


在开启一个终端,向MQ 添加任务(生产者)

>>> from tasks import add
>>> add.delay(4, 4)
output
>>> from tasks import add
>>> add.delay(4,4)
<AsyncResult: c2a87cc9-80b3-4525-80c6-6e291c960581>
>>> add.delay(4,14)
<AsyncResult: 41186edd-95c2-443f-b62a-56a7542cb259>

-------------------------

Flower

最后可以使用flower 来对这个组合进行监控。

安装 

pip install flower

或者

easy_install flower

然后输入:

celery flower --broker=amqp://guest:guest@127.0.0.1:5672//

output

[I 180502 17:22:44 command:139] Visit me at http://localhost:5555
[I 180502 17:22:44 command:144] Broker: amqp://guest:**@127.0.0.1:5672//
[I 180502 17:22:44 command:147] Registered tasks:
    ['celery.accumulate',
     'celery.backend_cleanup',
     'celery.chain',
     'celery.chord',
     'celery.chord_unlock',
     'celery.chunks',
     'celery.group',
     'celery.map',
     'celery.starmap']
[I 180502 17:22:44 mixins:224] Connected to amqp://guest:**@127.0.0.1:5672//

打开连接

http://localhost:5555 就可以实时监控这个组合了。




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值