为了账号安全,请及时绑定邮箱和手机立即绑定

远程工作者的 Celery 任务状态为“PENDING”,但实际上是“SUCCESS”

远程工作者的 Celery 任务状态为“PENDING”,但实际上是“SUCCESS”

动漫人物 2023-05-09 16:15:09
我在不同的服务器上有 2 个芹菜工人。我的第一个服务器配置是:CELERY_BROKER_URL = env.str("CELERY_URL") # amqp://<user>:<password>@host/dbCELERY_RESULT_BACKEND = env.str("RESULTS_URL") # redis://<user>:<password>@<host>CELERY_ACCEPT_CONTENT = ["json"]CELERY_TASK_SERIALIZER = "json"CELERY_RESULT_SERIALIZER = "json"CELERY_IGNORE_RESULT = FalseCELERY_TASK_TRACK_STARTED = True# I've also tried CELERY_TASK_STARTED我的第二个服务器配置是broker = "amqp://<user>:<password>@host/db" # same as 1stresult_backend = "redis://<user>:<password>@<host>" # same as 1sttask_track_started = True# I've also tried task_started同样在我的第二台服务器上我有一个任务@app.task(name='Test_task')def test_task():    return 'Done!'我从我的第一台服务器调用这个任务task = app.send_task('Test_task', queue='test_queue')所以我的问题是当我试图获得这个任务状态或结果时它总是相同的>>> task.state'PENDING'>>> print(task.result)None但是如果我在 flower 中检查这个任务,它的状态是SUCCESS,结果是Done!我也尝试过用作rpc://result_backend 但结果仍然相同。我的第一个 Celery worker 在 Pop!_OS 20.04 LTS x86_64 上运行我的第二个 Celery worker 在 Ubuntu 20.04 LTS aarch64 上运行
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

你必须在第二个配置中使用backendinstead ofresult_backend

查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信