2013-02-17 43 views
2

是否可以从其子任务Z访问调用父任务A的参数?换句话说,当任务Z被链接调用时,它可以以某种方式访问​​参数V,这是在任务A被触发时调用的,但未通过任务A和Z之间的任何中间节点传递的参数?如果是这样,怎么样?从Celery中的子任务访问父任务的参数

使用Celery 3.0与RabbitMQ结果后端。

回答

1

我要用一个“不”的方式临时回答我自己的问题 - 并且希望有一个比我更有知识的人会回来一个解决方案。

在仔细查看Celery文档后,我想没有办法访问父任务被调用的参数。按照documentation

在其一生中的任务将通过几种可能 状态转移,并且每个州可以有任意元数据附加到它。 当任务移动到以前的状态遗忘 一个新的状态..

任务可以在以下状态之一:待定,已开始,成功,失败,重试,并撤销。对于我的情况,这里的关键似乎是成功状态。我想要做的是,对于一个给定的成功任务,找到(其中一个)父任务的id,然后查看父母被调用的参数。然而,根据该文件,在成功状态一个任务将不包含此类型的数据(因为父任务本身已经成功,因为它催生了一个子任务):

SUCCESS任务已成功执行。

元数据:结果包含任务的返回值。 传播:是的准备好了:是的

换句话说,似乎这里有一个硬性限制。即使我可以找到我感兴趣的父任务的ID,因为它已经成功执行了,我将根据定义不能访问它被调用的参数,因为它只包含返回值(不再是它的参数)。

相关问题