Celery(2):celery快速上手使用
2017-10-16 17:36
381 查看
简单使用
github:https://github.com/liaotuo/Celery.git码云:https://gitee.com/liaotuo/Celery.git
新建tasks.py, 文件内容如下
# coding=utf-8 from celery import Celery # celery 的相关配置 celery = Celery('tasks', broker='redis://localhost:6379/0') # 具体任务(执行两个数相加) @celery.task def add(x, y): return x + y
注册任务到任务队列
$ celery -A tasks worker -l info ### -l info表示loglevel等级为info级,也可以设为debug级
输出如下:已经成功加入到task列表中了
调用task
# 打开python交互式环境 $ python # 输入一下两行代码 # tasks 为tasks.py 的路径(样例是在同一目录下) >>> from tasks import add >>> add.delay(2,5) # 返回结果的编号 >>><AsyncResult: 5dc2624e-c898-4702-b510-08b3aec3a440>
可以看到celery 控制台输出了任务执行的日志
执行成功,耗时0.000605990000622 结果为15
实际应用(task与配置分离)
新建python 包 celeryTasks ,目录如下
celeryTasks/ ├── celery.py ├── config.py ├── __init__.py └── tasks.py
文件内容
celery.pyfrom __future__ import absolute_import from celery import Celery app = Celery('myCeleryTasks', include=['myCeleryTasks.tasks']) app.config_from_object('myCeleryTasks.config')
config.py
# config file from __future__ import absolute_import CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0' BROKER_URL = 'redis://127.0.0.1:6379/0'
tasks.py
from __future__ import absolute_import from myCeleryTasks.celery import app @app.task def add(x, y): return x + y
注册task
$ celery -A myCeleryTasks worker -l info
调用
# 进入myCeleryTasks同级目录 $ python #打开python交互式环境 >>>from myCeleryTasks import add >>>add.delay(1,2)
输出效果和“简单使用”是一样的
相关文章推荐
- Masonry介绍与使用实践:快速上手Autolayout
- Eclipse快速上手指南之使用Ant
- Masonry介绍与使用实践:快速上手Autolayout
- Eclipse快速上手指南之使用CVS
- IntelliJ IDEA快速上手与使用技巧
- Masonry介绍与使用实践:快速上手Autolayout【转载】
- 快速上手,使用 JS 配合XML-RPC(JSP)实现AJAX类型应用
- 在 ASP.NET 環境下使用 Memcached 快速上手指南
- 可靠通信的保障 —— 使用ACK机制发送自定义信息——ESFramework 通信框架4.0 快速上手(12)
- Masonry介绍与使用实践(快速上手Autolayout)
- Centos6.5使用yum安装mysql——快速上手必备
- Masonry介绍与使用实践(快速上手Autolayout)
- Centos6.5使用yum安装mysql——快速上手必备(转)
- Masonry介绍与使用实践(快速上手Autolayout)
- VBA快速上手-常用对象之使用
- Masonry介绍与使用实践:快速上手Autolayout
- Masonry介绍与使用实践:快速上手Autolayout
- POP介绍与使用实践(快速上手动画)
- 快速上手Spring--4.安装和使用SpringIDE
- Masonry介绍与使用实践:快速上手Autolayout