我正在使用 Celery 进行 POC。我的目标是创建跨分布式系统的工作流程。
为了进行 POC,我创建了几个 docker 容器,每个容器都有一个以队列选项启动的工作线程。我从另一个容器启动了一条链。该链在容器之间成功执行。现在我决定启用 来result_backend存储每个任务执行的结果。
我使用 schema 选项设置了result_backendto 。postgresql现在执行链后,我确实看到了在 postgres 中创建的表。但是,该task_meta表的某些列为空(例如工作人员、队列)。其中task_id和 状态已正确填充。
有人遇到过类似的问题吗?任何帮助表示赞赏。
小智 7
我知道你问这个问题已经很长时间了,但我希望它能对其他人有所帮助。
默认情况下,Celery 不会将所有任务结果属性写入后端。您必须通过设置来配置它,result_extended如下True所述: https: //docs.celeryproject.org/en/stable/userguide/configuration.html#result-extended
因此,如果您从 python 配置应用程序,则必须执行以下操作:
import celery
app = Celery(
broker=broker_url,
backend=postgresq_url,
)
app.conf.update(result_extended=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1394 次 |
| 最近记录: |