鍍金池/ 問(wèn)答/PHP  網(wǎng)絡(luò)安全/ php 實(shí)現(xiàn)流程平臺(tái)時(shí)間線的疑問(wèn)

php 實(shí)現(xiàn)流程平臺(tái)時(shí)間線的疑問(wèn)

目標(biāo):通過(guò)php實(shí)現(xiàn)流程平臺(tái)的時(shí)間線

例如,需要設(shè)計(jì)一個(gè)流程平臺(tái),需要通過(guò)A->B->C->D->E等步驟實(shí)現(xiàn)完整的流程,整個(gè)流程平臺(tái)里分多個(gè)job。

需求:每個(gè)流程的C狀態(tài),各個(gè)job(比如一個(gè)流程里有5個(gè)job)需要等待半小時(shí)(即timeout最長(zhǎng)為30min),之后才能進(jìn)入到D狀態(tài)(根據(jù)job的完成狀態(tài)進(jìn)行判斷,如果job成功了則進(jìn)入D狀態(tài);如果失敗則創(chuàng)建一個(gè)C1狀態(tài),用于手工完成C1)。
也就是說(shuō)整個(gè)流程的耗時(shí)因?yàn)樵贑狀態(tài)有timeout所以很長(zhǎng),請(qǐng)問(wèn)這種流程平臺(tái)該如何設(shè)計(jì)呢?先謝過(guò)了!

回答
編輯回答
久不遇

感謝邀請(qǐng),根據(jù)題主描述應(yīng)該是想實(shí)現(xiàn)一個(gè)定時(shí)器的任務(wù),而不是時(shí)間線的問(wèn)題。我的思路是這樣的,首先JOB執(zhí)行程序最大時(shí)間應(yīng)該高于30min,30min鐘執(zhí)行完成后,在JOB本身進(jìn)行狀態(tài)的判斷。網(wǎng)上有相關(guān)代碼(其中腳本51上就有,所以不再說(shuō)了)。其次是你要寫(xiě)一個(gè)php文件可以運(yùn)行在cli模式下,用"php XXX.php start -d"然后每隔兩分鐘檢測(cè)一下你運(yùn)行中的JOB是否完成,進(jìn)而判斷是否進(jìn)入下一個(gè)狀態(tài),還是提醒你手動(dòng)創(chuàng)建C1任務(wù)。

2017年12月19日 17:33