pdshingo
@pdshingo
Thu, Jun 6, 2019 8:18 AM
有點不太懂如果是microservice做排程,應該是想辦法寫個程式叫linux cron來做job,還是裝個類似cron/quartz之類的元件程式內管控job。 如果選擇後者應該怎麼做unit test...
pdshingo
@pdshingo
說
Thu, Jun 6, 2019 8:44 AM
簡單做的話 大概是
1. 排程內對外部呼叫的部分改為傳入排程之參數,型態是個抽象介面。
2. 讓排程有個輸出結果(含時間)傳到某個點
最後在test case 把排程設定幾種時間case,傳入測試實作的介面,然後比對輸出結果是否符合?
doomleika
@doomleika
Thu, Jun 6, 2019 10:04 AM
Lambda?
doomleika
@doomleika
Thu, Jun 6, 2019 10:07 AM
k8s job基本上就是解你的問題
doomleika
@doomleika
Thu, Jun 6, 2019 10:07 AM
CI的scheduled也能符合你的需求
pdshingo
@pdshingo
說
Thu, Jun 6, 2019 10:33 AM
Thu, Jun 6, 2019 10:33 AM
doomleika
: 我們做的東西有點像是
Triggers and Alarms - a simple IoT Rules Engine
,排程的部分算是使用者動態設定而非先定。k8s job應該是種解法不過變成應該要寫個要把使用者設定部分轉換成Job Spec再kubectl create的服務?
另外因為
智障
大人的理由,我們的container沒辦法透過k8s來管,所以目前作法是用go cron寫個排程服務來做 orz
載入新的回覆
1. 排程內對外部呼叫的部分改為傳入排程之參數,型態是個抽象介面。
2. 讓排程有個輸出結果(含時間)傳到某個點
最後在test case 把排程設定幾種時間case,傳入測試實作的介面,然後比對輸出結果是否符合?
另外因為
智障大人的理由,我們的container沒辦法透過k8s來管,所以目前作法是用go cron寫個排程服務來做 orz