美文网首页
消息队列celery初探

消息队列celery初探

作者: 晚上吃火锅吗 | 来源:发表于2018-12-21 16:33 被阅读0次

消息队列是网站架构中常用的组件,在异步任务、高并发等场景下使用广泛,celery是py下常用的消息队列,最近有一个异步计算需求,正好来学习一下celery的基本用法。

开发环境为window10、python3.6
首先安装celery,我们这里使用redis作为消息中间件

pip install celery[redis]

一共需要编写两个文件,一个任务(生产者)文件,一个生产者文件。
编写一个简单的任务文件celery_demo01.py,两个数相加,并加入sleep查看效果

# coding=utf-8
import time
from celery import Celery

broker = 'redis://localhost:6379/1'
backend = 'redis://localhost:6379/2'
app = Celery('demo01', broker=broker, backend=backend)

@app.task
def add(x, y):
    print("enter call func")
    time.sleep(5)
    return x + y

编写生产者文件app.py

# coding=utf-8
from celery_demo01 import add

if __name__ == "__main__":
    print("start")
    result = add.delay(2,8)
    print("end")
    print(result)

现在开始测试

1.首先启动redis

2.进入工程目录,输入命令,启动worker

celery worker -A celery_demo01 -l INFO

3.进入工程目录,启动生产者

python app.py
可以看到任务已经成功提交
但是worker却报错

问了度娘发现是windows10下celery的异常,解决方案就是

  1. pip install eventlet
  2. 启动worker时的命令加入参数: celery worker -A celery_demo01 -l INFO -P eventlet
重复之前步骤,问题解决,worker结果如下

相关文章

  • 消息队列celery初探

    消息队列是网站架构中常用的组件,在异步任务、高并发等场景下使用广泛,celery是py下常用的消息队列,最近有一个...

  • 初探Celery

    初探Celery 参考自董伟明的Python Web开发实战 了解Celery前,可以先了解下任务与消息队列 Ce...

  • 消息队列:celery

    1. 什么是 celery Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统; Celery 专注...

  • 二、Celery 初探

    Celery 初探 Celery是一个分布式任务队列。它是围绕最佳实践设计的,这样您的产品就可以与其他语言进行伸缩...

  • RabbitMQ与Celery

    RabbitMq与Celery应用示意图 1、RabbitMQ ((消息队列工具,在celery中扮演broker...

  • python-分布式任务队列

    celery 分布式任务队列工具 Celery是一个分布式任务队列工具,是一个异步的任务队列基于分布式消息传递 基...

  • Celery简介

    Celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。 Celery用于生产系统每天处理数以百万计...

  • Celery,Tornado,Supervisor构建和谐的分布

    Celery 分布式的任务队列 与rabbitmq消息队列的区别与联系: rabbitmq 调度的是消息,而Cel...

  • python爬虫之celery分布式任务(踩坑)

    一. celery和RabbitMQ简单介绍 Celery是一个基于Python开发的分布式异步消息队列,可以轻松...

  • Celery简单使用

    简介 Celery消息队列 消息队列选择一般选择以下两种 1、redis 这是比较轻量级的 2、rabbitmq ...

网友评论

      本文标题:消息队列celery初探

      本文链接:https://www.haomeiwen.com/subject/diithqtx.html