2017-04-02 4 views
0

私はタスクをTornadoと非同期で実行するためにtceleryを使用しています。 ENV:OSX、Python3.4ImportError:名前 'TaskProducer'をインポートできません。

これはserver.pyです:

Traceback (most recent call last): File "tornado_async.py", line 7, in import tcelery File "/Users/mohit/anaconda/envs/py34/lib/python3.4/site-packages/tcelery/init.py", line 8, in from .producer import NonBlockingTaskProducer File "/Users/mohit/anaconda/envs/py34/lib/python3.4/site-packages/tcelery/producer.py", line 10, in from celery.app.amqp import TaskProducer ImportError: cannot import name 'TaskProducer'

をどのようにすることができます:

from tornado import gen 
from tornado import ioloop 
from tornado.web import asynchronous, RequestHandler, Application 

import tasks 

import tcelery 
tcelery.setup_nonblocking_producer() 


class GenAsyncHandler(RequestHandler): 
    @asynchronous 
    @gen.coroutine 
    def get(self): 
     response = yield gen.Task(tasks.sleep.apply_async, args=[3]) 
     self.write(str(response.result)) 
     self.finish() 

application = Application([ 
    (r"/gen-async-sleep", GenAsyncHandler) 
]) 


if __name__ == "__main__": 
    application.listen(8887) 
    ioloop.IOLoop.instance().start() 

私は、サーバーのファイルを実行すると、これはエラートレースが返されますこれを修正しますか? ありがとう

答えて

0

トルネードセロリのバージョンが低すぎて、セロリ4.1をサポートできません。あなたは "python setup.py install"で竜巻セロリをインストールすることができます。

関連する問題