2016-08-18 55 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需求。