任務監控程式設計與實現總結

2022-09-06 17:00:21 字數 1881 閱讀 6692

1.簡介

1.1 上游系統

1.上游系統不定時傳送計畫xml檔案,該xml包含一組《型別:任務》;上游系統收到檔案後,需要返回乙個回執。

2.不定時傳送狀態上報命令,詢問計畫執**況。

1.2 監控程式

監控系統類似訊息佇列中的broker,維護任務佇列,接收上游系統下發的計畫,並將任務排程給下游系統執行。

1.監控程式維護一組任務佇列,根據下游系統傳送的任務狀態資訊,更新對應任務狀態。若下游系統空閒,為其分配新的任務。

2.下游系統離線後,監控程式需要將該系統未完成的任務重新分配。

3.監控程式重啟後,可讀取已儲存的任務資訊重建《型別:任務佇列》,通過下游系統上報的狀態資訊重建《下游系統:當前任務》關聯。

4.當任務狀態發生變動時,需要向上游系統匯報狀態資訊。

1.3 下游系統

1.每個下游系統處理特定型別的任務,同一型別的多個任務可分配到多個下游系統執行。

2.下游系統定時傳送當前任務狀態(心跳協議)。

下游系統的狀態轉換如下圖所示:

2.類圖設計

1.globaltaskbuffer採用單例模式,儲存了系統中所有的任務資訊,根據任務型別的不同,構建了不同的任務佇列。

2.globaldownsysbuffer採用單例模式,儲存了所有下游系統的資訊,每個downsys對應乙個當前任務curtask,curtask由監控程式排程分配,初始狀態為null。

2.1 getdownsys方法會根據ip和port搜尋對應的downsys物件,若未找到,建立乙個新的downsys物件並加入到globaldownsysbuffer中;

2.2 heartbeat方法會累加downsys物件的heartbeatcount,若heartbeatcount的值超過設定的閾值,則系統認為該downsys已離線,執行cleardiedownsys方法做清理工作(若該downsys對應的任務正在執行,則認為該任務已執行錯誤,重新分配)。heartbeat方法由control的heartbeattimerproc定時呼叫。

3.basehandler處理與上下游系統之間的互動

3.1 upsyshandler接收並解析上游系統傳送的計畫xml,傳送檔案回執;接收任務上報命令,構建和傳送任務執行狀態回執。

3.2 downsyshandler將任務分配給下游系統,接收和解析下游系統傳送的任務狀態資訊,更新任務狀態,維護對映等。

4.control類借助其他類,處理與上下游之間的互動。

3.處理流程(時序圖)

1 處理與上游系統的互動

2 處理與下游系統的互動

js 巨集任務與微任務總結

script settimeout setinterval messagechannel postmessage setimmediate requestanimationframe i o操作 ui渲染 process.nexttick mutationobserver promise.then ...

利用計畫任務實現遊戲監控

任務計畫,又稱為計畫任務,是windows中可以定時執行預定任務的服務。利用任務計畫,可以讓計算機按照主人的計畫執行相應的程式 指令碼或者文件,如同乙個可以自動執行任務的 定時器 windows 7中,計畫任務面板所在的位置為 windows all programs accessories sys...

總結quartz 實現定時任務

下在quartz包,解壓後會發現根目錄下有一大堆的jar包,最重要的是quartz all jar,當然就是版本號了,必須把這個包放到專案的classpath的跟目錄下。lib目錄下是一些第三方庫,如果是單獨的quartz服務,建議把他們都引入到專案中。配置檔案,quartz的配置檔案通常叫做qua...