celery==3.1.23
pika==0.9.14
注意,pika不能用0.10版本的,不知道为啥,请参考:http://www.thinksaas.cn/ask/question/27656/
tornado-celery==0.3.5
2.
编辑tasks.py
#!/usr/bin/python
# -*- coding=utf-8 -*-
import os
from celery import Celery
celery = Celery('tasks',
broker='amqp://127.0.0.1')
celery.conf.CELERY_RESULT_BACKEND =
os.environ.get('CELERY_RESULT_BACKEND', 'amqp')
@celery.task(name='task.example')
def echo(content):
"""
耗时操作任务实例:
:param
content:
:return:
"""
content
return
content
3.
编辑tornado的 hander.py
#!/usr/bin/python
# -*- coding=utf-8 -*-
# 这里的例子用来实验 tornado-celery 的作用, 注意需要安装 pika==0.9.14
版本的
from tornado import web
import tcelery
import tasks
tcelery.setup_nonblocking_producer()
class ExampleHandler(web.RequestHandler):
@web.asynchronous
def
get(self):
tasks.echo.apply_async(args=['Hello world!'],
callback=self.on_result)
def on_result(self,
response):
self.write(str(response.result))
self.finish()
4. 到tasks.py
所在目录,执行:celery -A
tasks worker --loglevel=debug
5. 运行rabbitmq:sudo
rabbitmq-server
6. 运行 tornado
main函数