tornado celery mysql_tornado-celery使用例子

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:

"""

print

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函数


版权声明:本文为weixin_28800247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。