芹菜。从代码运行任务失败,无限“PENDING”状态

时间:2021-06-13 13:31:49

标签: celery

我尝试根据文档设置所有内容,但失败了。

我检查了所有 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> 

0 个答案:

没有答案