SQLAlchemy后端如何存储传递给Flask应用中的Celery任务的参数。

3
我正在开发一个使用celery在后台启动大量任务的flask应用程序,使用Redis作为消息代理队列,SQLAlchemy作为celery后端。
默认情况下,我可以看到“结果”存储在celery_taskmeta表的“results”列中,但我也想要将传递给任务的参数存储在其中。
并且我将来也想检索它们。有没有办法将它们存储在我的当前后端中呢?
谢谢。
2个回答

1

2
非常感谢您,但我仍然无法在Flask中使其工作。这是我从Flask Celery文档中获取的Flask配置。 - Rohit Kurdukar
https://flask.palletsprojects.com/en/1.1.x/patterns/celery/,并在celery构造函数中添加result_extended = True,不确定是否正确使用此设置。 - Rohit Kurdukar
再次感谢,是的我也尝试了这个选项,但没有运气,而且我正在使用4.4.6。但据GitHub存储库显示,这个问题在4.3中存在,但我不确定它在哪个版本中得到了修复。我可以知道你有哪个版本,我可以尝试一下。另外,现在结束传递参数时还会将参数返回到任务输出中,以便这些参数也会存储在结果列中。这是报告的github问题的链接 - Rohit Kurdukar
我不明白你所说的“同时将传递的参数和结果一起返回到任务输出中,这样参数也会存储在结果列中”的意思。 - Sowjanya R Bhat
我使用了 celery 4.4.2 版本,搭配 elasticsearch result-backend 。你使用的是什么 result-backend? - Sowjanya R Bhat
显示剩余3条评论

0

result_backend=True 在使用 app.config_from_object() 加载配置时无效。

您需要手动更新配置,使用 app.conf.update(result_backend=True)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接