我尝试根据文档设置所有内容,但失败了。
我检查了所有 this 时刻,它出现在输出中。
附言为方便起见,最好从代码中运行 celery
。
tasks.py
from redis import Redis as redis_Redis
from celery import Celery
redis_drivers_queue = redis_Redis(db=0, port=6379, host='localhost')
redis_drivers_result = redis_Redis(db=1, port=6379, host='localhost')
app = Celery(main=__name__, broker='redis://localhost:6379/0', backend='redis://localhost:6379/1')
app.conf.humanize(with_defaults=False, censored=False)
app.conf.update(result_expires=3600)
@app.task
def foo():
print(222)
return 444
if __name__ == '__main__':
app.worker_main([__name__, '--loglevel=DEBUG'])
main.py
import tasks
r = tasks.foo.delay()
r.status
'PENDING' # Always
r.backend
<celery.backends.redis.RedisBackend object at 0x7f698fa3f910>
Redis 结果存储
david@david-ThinkPad-E480:~$ redis-cli -n 1
127.0.0.1:6379[1]> KEYS *
(empty list or set)
127.0.0.1:6379[1]>
Redis 任务存储
david@david-ThinkPad-E480:~$ redis-cli -n 0
127.0.0.1:6379> KEYS *
1) "celery"
2) "_kombu.binding.celery"
127.0.0.1:6379> GET celery
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> get "_kombu.binding.celery"
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379>