我有一些Celery工作人员将他们的结果存储在MongoDB后端。这看起来效果很好。但是,我还需要在Neo4J图形数据库中存储唯一的taskID(以及一些其他任务结果元数据)。
我的主要目标是在Neo4J中引用任务结果,而不会使数千个结果混乱。因此,Neo4J为任务结果提供了可视化功能。
我需要一些关于使用Celery实现这一目标的最佳方法的建议。
以下是我一直在玩的一些选项:
答案 0 :(得分:0)
将调用Neo4J作为子任务进行排队可以提高granularity of tasks的一致性(Neo4J中的数据将会赶上MongoDB中的数据)。
您可以继承celery.Task
并覆盖celery.Task.after_return,以便将task_id
保存到Neo4J。请注意,retval
可能是未捕获的异常。