2016-08-18 41 views
0

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

回答

1

一般情况下,您不需要将任务A的参数传递给任务B,但任务B需要为任务A生成这些参数的值。如果任务B无法生成这些参数,必须设置任务B以从命令行获取这些参数,然后将它们传递给require方法中的任务A构造函数。

1

那么如果TaskB需要TaskA但TaskB不接受任何参数,那么它可能需要TaskA的当前日期和时间。如果这个假设是真的,那么在没有任何参数的情况下,在cron中@hourly运行TaskB就足够了,并且定义它的require()方法以产生具有当前日期和时间的TaskA。另一方面,如果TaskB在某个特定的时间点需要TaskA,它本身应该有DateHourParameter()(这是用日期和时间参数化任务的首选方式 - 除非你需要更高的精度,然后取一个请在DateMinuteParameter()DateSecondParameter()上查看两个参数,一个是日期,另一个是时间),然后使用自己的参数值产生TaskA需求。