Luigi参数如何工作?

时间:2016-08-18 14:18:02

标签: python luigi

所以我有两个任务(让我们说TaskA和TaskB)。我希望每小时运行两个任务,但TaskB需要TaskA。 TaskB没有任何参数,但TaskA有两个日期和小时参数。如果我在命令行上运行TaskB,我是否需要传递参数?

2 个答案:

答案 0 :(得分:1)

通常,您不需要将任务A的参数传递给任务B,但是任务B需要为任务A生成这些参数的值。如果任务B无法生成这些参数,您将拥有设置任务B以从命令行获取这些参数,然后将它们传递给requires方法中的任务A构造函数。

答案 1 :(得分:1)

如果TaskB需要TaskA但是TaskB不接受任何参数,那么它可能需要TaskA来获取当前日期和时间。如果这个假设是正确的,那么在没有任何参数的情况下在cron中运行TaskB @hourly就足够了,并定义它的requires()方法来生成具有当前日期和时间的TaskA。

另一方面,如果TaskB在某个特定时间点需要TaskA,它本身应该有DateHourParameter()(这是以日期和时间参数化任务的首选方式 - 除非您需要更高的精度,然后查看DateMinuteParameter()DateSecondParameter()两个参数,一个用于日期,另一个参数用于时间),然后根据自己的参数值生成TaskA的需求。