celery:result_backend中的奇怪标志(postgresql-db)

时间:2015-08-18 15:22:28

标签: postgresql celery

我正在使用配置了result_backend postgresql-database的celery安装。

到目前为止它工作正常,但我对#34;格式化问题有一点问题。 db。中结果的结果。

我从我的任务(@ app.task下的函数名)返回了几个值(一个字符串,一个带有错误消息的异常,一个int)。

但是,当我查看表格时,celery_taskmeta" -table在设置result_backend-option时芹菜写入,我看到更多的“加密”'预期值旁边的值(screenshot of the select-result)。

以红色圈出的所有内容都是预期值。例如,底部的273是我返回的int的八进制表示。

当然,我可以过滤掉所有不需要的东西,但如果它包含一些有用的信息,或者在某些其他情况下可能会有所不同......

有谁知道为什么会有那些奇怪的迹象?

感谢您的帮助, 卢卡斯

1 个答案:

答案 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)