redis.exceptions.ResponseError
问题原因是我用了django-celery然后pip安装时自动帮我装了celery 3.1.26
这个问题的根本原因是版本问题,因为我的redis是4.0.9
Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=9435c3c2879311f3
但是我的celery是3.1.26

后来我把celery重装成4.3.0就解决了问题
解决办法参考https://github.com/dealertrack/celery-redis-sentinel/issues/15
https://stackoverflow.com/questions/53328283/force-celery-to-use-strictredis
[2019-08-20 06:51:38,515: CRITICAL/MainProcess] Task celery02.task.add[a9c34a2f-b97a-4b13-889d-40be6644d3cc] INTERNAL ERROR: ResponseError('Command # 1 (SETEX b\'celery-task-meta-a9c34a2f-b97a-4b13-889d-40be6644d3cc\' {"status": "SUCCESS", "result": 4, "traceback": null, "children": []} 86400) of pipeline caused error: value is not an integer or out of range',)
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/celery/app/trace.py", line 283, in trace_task
uuid, retval, SUCCESS, request=task_request,
File "/usr/local/lib/python3.6/dist-packages/celery/backends/base.py", line 271, in store_result
request=request, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/celery/backends/base.py", line 505, in _store_result
self.set(self.get_key_for_task(task_id), self.encode(meta))
File "/usr/local/lib/python3.6/dist-packages/celery/backends/redis.py", line 161, in set
return self.ensure(self._set, (key, value), **retry_policy)
File "/usr/local/lib/python3.6/dist-packages/celery/backends/redis.py", line 150, in ensure
**retry_policy
File "/usr/local/lib/python3.6/dist-packages/kombu/utils/__init__.py", line 246, in retry_over_time
return fun(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/celery/backends/redis.py", line 170, in _set
pipe.execute()
File "/home/moluo/.local/lib/python3.6/site-packages/redis/client.py", line 3520, in execute
return execute(conn, stack, raise_on_error)
File "/home/moluo/.local/lib/python3.6/site-packages/redis/client.py", line 3435, in _execute_transaction
self.raise_first_error(commands, response)
File "/home/moluo/.local/lib/python3.6/site-packages/redis/client.py", line 3469, in raise_first_error
raise r
redis.exceptions.ResponseError: Command # 1 (SETEX b'celery-task-meta-a9c34a2f-b97a-4b13-889d-40be6644d3cc' {"status": "SUCCESS", "result": 4, "traceback": null, "children": []} 86400) of pipeline caused error: value is not an integer or out of range

浙公网安备 33010602011771号