celery 连接 redis异常。


local/lib/python2.7/site-packages/celery/app/trace.py:365: RuntimeWarning: Exception raised outside body: ResponseError(u'Command # 1 (SETEX celery-task-meta-160cb39a-c02e-437e-b830-76f250bc2a6a \\x80\\x02}q\\x01(U\\x06statusq\\x02U\\x07SUCCESSq\\x03U\\ttracebackq\\x04NU\\x06resultq\\x05NU\\x08childrenq\\x06]u. 86400) of pipeline caused error: value is not an integer or out of range',):
Traceback (most recent call last):
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/celery/app/trace.py", line 283, in trace_task
    uuid, retval, SUCCESS, request=task_request,
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/celery/backends/base.py", line 271, in store_result
    request=request, **kwargs)
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/celery/backends/base.py", line 505, in _store_result
    self.set(self.get_key_for_task(task_id), self.encode(meta))
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/celery/backends/redis.py", line 161, in set
    return self.ensure(self._set, (key, value), **retry_policy)
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/celery/backends/redis.py", line 150, in ensure
    **retry_policy
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/kombu/utils/__init__.py", line 246, in retry_over_time
    return fun(*args, **kwargs)
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/celery/backends/redis.py", line 170, in _set
    pipe.execute()
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/redis/client.py", line 4019, in execute
    return execute(conn, stack, raise_on_error)
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/redis/client.py", line 3934, in _execute_transaction
    self.raise_first_error(commands, response)
  File "/home/chenzhenxing/MyProject/env/env-import-tools/local/lib/python2.7/site-packages/redis/client.py", line 3968, in raise_first_error
    raise r
ResponseError: Command # 1 (SETEX celery-task-meta-160cb39a-c02e-437e-b830-76f250bc2a6a \x80\x02}q\x01(U\x06statusq\x02U\x07SUCCESSq\x03U\ttracebackq\x04NU\x06resultq\x05NU\x08childrenq\x06]u. 86400) of pipeline caused error: value is not an integer or out of range

  exc, exc_info.traceback)))

使用celery 3.1版本链接redis的时候,发现了这个异常。
阅读异常发现无法SETEX 命令出现了错误。
查看redis 的该命令,发现redis中该命令的基本语法是:SETEX KEY_NAME TIMEOUT VALUE
而3.1版本的celery的命令是 SETEX KEY_NAME VALUE TIMEOUT。
最后升级至4.X版本解决。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM