來某廠接近半年了,幾乎沒寫過C++代碼,說實(shí)話還真的有點(diǎn)手生。最近剛好有一個需求,然而我感覺我也沒有辦法用C++以外的語言去實(shí)現(xiàn)它。于是還是花了幾天時間用C++完成編碼,這是一個簡單的任務(wù)執(zhí)行引擎,它被我稱作panguan。寫這 篇文章主要記錄一下開發(fā)過程中的一些思路和想法。不足之處,勞煩大家給予指出。

1.寫在前面

1.1需求來源

最近有一個需求,假設(shè)我們有很多任務(wù)需要定時執(zhí)行甚至定時重復(fù)運(yùn)行,并且其中有一些任務(wù)之間可能存在控制依賴和/或數(shù)據(jù)依賴,甚至我們希望可以利用一些原子任務(wù)去組成一個更大的任務(wù)。

所以我們需要有一個工具可以將這些任務(wù)管理起來:1)解決依賴問題;2)將能并發(fā)的任務(wù)最大化地并發(fā)起來;3)使用簡單,只需填寫配置文件,不需要寫任何代碼即可讓一堆任務(wù)有序地Run起來;4)能夠正確調(diào)度這些任務(wù)的順序;5)may be more。

我調(diào)研了一些已經(jīng)存在的任務(wù)執(zhí)行引擎,包括FStack。然而試用了一下FStack,發(fā)現(xiàn)我不會用,這就很尷尬了。
報著“殺雞焉用牛刀”的想法,于是最終花了幾天自己寫了一個可實(shí)際運(yùn)行的工具,即panguan(判官)。

1.2名字來源

這個任務(wù)執(zhí)行引擎被命名為“判官”,就是想給人一種不明覺厲的裝X氣質(zhì)。

據(jù)百度百科記載,傳說中陰曹地府中的判官判處人的輪回生死,對壞人進(jìn)行懲罰,對好人進(jìn)行獎勵。而該任務(wù)執(zhí)行引擎的主要工作是調(diào)度任務(wù)的順序和生存周期,對執(zhí)行成功和失敗的任務(wù)進(jìn)行處理。感覺這個名字很有這個場景的氣質(zhì),于是配置任務(wù)屬性的

網(wǎng)友評論