【问题标题】:Integrate tornado with celery: RuntimeError: tornado-redis must be installed to use the redis backend将 tornado 与 celery 集成:RuntimeError: tornado-redis must be installed to use the redis backend
【发布时间】:2016-06-23 07:04:20
【问题描述】:

当我使用tornado-celery 整合tornado 和celery 时,出现错误: ```

traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1369, in _stack_context_handle_exception
    raise_exc_info((type, value, traceback))
  File "/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py", line 314, in wrapped
    ret = fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1581, in future_complete
    f.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result
    raise_exc_info(self._exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 876, in run
    yielded = self.gen.throw(*exc_info)
  File "/home/q/celeryTest/webui.py", line 18, in get
    response = yield tornado.gen.Task(common_check.apply_async, args=[rids, None,None])
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 870, in run
    value = future.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result
    raise_exc_info(self._exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 505, in Task
    func(*args, callback=_argument_adapter(set_result), **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/celery/app/task.py", line 565, in apply_async
    **dict(self._get_exec_options(), **options)
  File "/usr/local/lib/python2.7/dist-packages/celery/app/base.py", line 354, in send_task
    reply_to=reply_to or self.oid, **options
  File "/usr/local/lib/python2.7/dist-packages/celery/app/amqp.py", line 310, in publish_task
    **kwargs
  File "build/bdist.linux-x86_64/egg/tcelery/producer.py", line 104, in publish
    self.consumer.wait_for(task_id,
  File "/usr/local/lib/python2.7/dist-packages/kombu/utils/__init__.py", line 325, in __get__
    value = obj.__dict__[self.__name__] = self.__get(obj)
  File "build/bdist.linux-x86_64/egg/tcelery/producer.py", line 118, in consumer
    "tornado-redis must be installed to use the redis backend")
RuntimeError: tornado-redis must be installed to use the redis backend
ERROR:tornado.access:500 GET /check?rids=3001626 (127.0.0.1) 3.52ms

龙卷风代码是:

import tornado.web
import tornado.gen
import tcelery
from route_check_task.check_worker import common_check

tcelery.setup_nonblocking_producer()

class CheckHandler(tornado.web.RequestHandler):
    @tornado.web.asynchronous
    @tornado.gen.coroutine
    def get(self):
        rids = self.get_argument('rids').split(',')
        print rids
        response = yield tornado.gen.Task(common_check.apply_async, args=[rids, None,None])
        self.write(str(response.result))
        self.finish


application = tornado.web.Application([
    (r"/check", CheckHandler),
])

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

芹菜是:

@app.task
def common_check(rids, tts_enids, wrapperids):
    check_list = load_checks()
    results = []
    rids_all = rids
    if not rids_all or len(rids_all) == 0:
        pre_results = check(check_list=check_list, rids=rids, tts_enids=tts_enids, wrapperids=wrapperids, ops=0)
        results.append(pre_results)
    else:
        for i in xrange(0, len(rids_all), PRE_COUNT):
            rids = rids_all[i: i + PRE_COUNT]
            pre_results = check(check_list=check_list, rids=rids, tts_enids=tts_enids, wrapperids=wrapperids, ops=0)
            results.append(pre_results)
            logger_routecheck.info("check rids len={}".format(len(rids)))
    print results
    return results

错误显示我应该安装tornado-redis,但是我已经添加了,pip显示:

tornado (4.2)
tornado-celery (0.3.5)
tornado-redis (2.4.2)

我该如何解决这个问题,谢谢!

【问题讨论】:

    标签: python redis celery tornado


    【解决方案1】:

    已解决,tornado-redis 版本过低。当我将版本更新到最新版本:tornado-redis (2.4.18) 时,一切正常。

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 2015-09-22
      • 1970-01-01
      • 2014-06-21
      • 2011-04-22
      • 2015-10-12
      • 1970-01-01
      • 2013-02-15
      • 2020-09-06
      相关资源
      最近更新 更多