我正在使用配置了result_backend postgresql-database的celery安装。
到目前为止它工作正常,但我对#34;格式化问题有一点问题。 db。中结果的结果。
我从我的任务(@ app.task下的函数名)返回了几个值(一个字符串,一个带有错误消息的异常,一个int)。
但是,当我查看表格时,celery_taskmeta" -table在设置result_backend-option时芹菜写入,我看到更多的“加密”'预期值旁边的值(screenshot of the select-result)。
以红色圈出的所有内容都是预期值。例如,底部的273是我返回的int的八进制表示。
当然,我可以过滤掉所有不需要的东西,但如果它包含一些有用的信息,或者在某些其他情况下可能会有所不同......
有谁知道为什么会有那些奇怪的迹象?
感谢您的帮助, 卢卡斯
答案 0 :(得分:0)
不要直接查询数据库以获取结果数据 - 芹菜为此提供API - 请参阅docs
在您的情况下,您可以执行此操作以获取任务的输出和任何追溯:
cur.execute("SELECT task_id FROM celery_taskmeta WHERE date_done ...")
rows = cur.fetchall()
for row in rows:
task_id = row[0]
# you'll need to do something different if you have GroupResult
result = celery.AsyncResult(task_id)
LOG.info(result.result)
if result.traceback:
LOG.error(result.traceback)