亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

周期性訂單信息的處理方法及系統(tǒng)的制作方法_3

文檔序號:9235748閱讀:來源:國知局
該任務仍然未被之后,則可W將該任務數(shù)據(jù)寫入到異常隊列中,在該異常隊列中執(zhí)行 該任務。
[0046] 在異常隊列中執(zhí)行該任務時,如果仍然是多次都未執(zhí)行成功,則可能是由于其他 系統(tǒng)出現(xiàn)問題等原因造成的,可W向管理人員發(fā)出提示消息,由管理人員解決。另外,可W 為異常隊列中的任務數(shù)量設定一個上限值,如果異常隊列中的任務數(shù)量過多,超過該上限 值,則可W發(fā)出警告,提示管理人員注意該異?,F(xiàn)象。
[0047] 通過該種在同一應用服務器中開啟多個線程,并且不同的線程使用不同的讀取周 期、任務數(shù)據(jù)執(zhí)行完成之后添加已執(zhí)行標識的方式,對于應用服務器出現(xiàn)若機的情況,也可 W確保所有任務都能夠被執(zhí)行。當然,需要通過控制服務器對各個應用服務器的運行情況 進行監(jiān)控,及時發(fā)現(xiàn)出現(xiàn)若機的應用服務器,并重新為各個未發(fā)生若機的應用服務器分配 ID,重新向各個未發(fā)生若機的應用服務器發(fā)送控制指令。該樣數(shù)據(jù)庫中的任務數(shù)據(jù)就可W 在各個應用服務器之間重新分配。例如,發(fā)生若機的是原來ID為7的應用服務器,則重新分 配ID之后,原來ID分別為8、9的應用服務器可能會被分配為7、8,應用服務器的總數(shù)變?yōu)?9;各個應用服務器在接收到新的控制指令之后,只是從數(shù)據(jù)庫中讀取任務數(shù)據(jù)時的標識規(guī) 則會發(fā)生變化,但是各個任務讀取線程的讀取周期可W不變,之前的計時器也都是正常工 作的。
[004引例如,某應用服務器A中的線程1在11 ;55時,讀取了從11 ;50到11 ;55之間到期 的10個任務,在11 ;57分時,該服務器A出現(xiàn)了若機,此時,服務器A讀取到的任務可能有 部分被執(zhí)行了,還有部分任務尚未被執(zhí)行。此時,控制服務器在重新分配了 ID,并重新發(fā)送 了控制指令之后,其他各個應用服務器仍然會按照原有的讀取周期W及計時器的計時狀態(tài) 正常工作。例如,某應用服務器中線程1的讀取周期為5分鐘,上一讀取時間為11 ;55分, 則在重新接收到控制指令后,仍然會在12 ;00的時候再進行下一次讀取,讀取的任務數(shù)據(jù) 是從11 ;55到12 ;00之間的到期任務數(shù)據(jù)。而關于之前被應用服務器A讀取到的從11 ;50 到11 ;55之間的到期任務數(shù)據(jù),如果有尚未被執(zhí)行的,則可W被讀取周期為20分鐘或者更 長的線程讀取到。例如,某線程的讀取周期為20分鐘,上一讀取時間為11 ;40,則在重新收 到控制指令之后,會在12 ;00時進行下一次讀取,讀取的是從11 ;40到12 ;00之間到期的、 尚未被添加已執(zhí)行標識的任務數(shù)據(jù),該些任務數(shù)據(jù)中之前被應用服務器A讀取到的、在11 : 50到11 ;55之間到期的、尚未被執(zhí)行的任務數(shù)據(jù)。只不過由于應用服務器的總數(shù)發(fā)生了變 化,數(shù)據(jù)庫中的任務數(shù)據(jù)會重新分配到各個應用服務器,因此,該些任務數(shù)據(jù)可能會分別被 不同的應用服務器讀取到,但并不會影響該些任務的執(zhí)行。
[0049] 總之,通過本申請實施例中的上述方式可W使得在任務眾多的情況下,不會出現(xiàn) 任務得不到執(zhí)行或者被多次重復執(zhí)行的現(xiàn)象。另外,通過該種方式還可W便于實現(xiàn)擴容,例 女口,出現(xiàn)任務暴增等情況時,還可W通過添加應用服務器的方式來保證任務的均衡。同樣, 在該種情況下,控制服務器也需要重新為應用服務器分配ID,并重新給各個應用服務器發(fā) 送控制指令,使數(shù)據(jù)庫中的任務數(shù)據(jù)能夠重新平均分配到各個應用服務器中。此外,除了可 W水平添加應用服務器,還可W通過在應用服務器內(nèi)增加新的線程的方式來實現(xiàn)擴容。該 種方式不需要控制服務器重新發(fā)送控制指令,只要在應用服務器內(nèi)啟動新的線程,并設置 好讀取周期即可。
[0050] 與本申請實施例提供的周期性訂單信息的處理方法相對應,本申請實施例還提供 了一種周期性訂單信息的處理系統(tǒng),參見圖2,該處理系統(tǒng)具體可W包括:
[0051] 請求接收單元201,用于根據(jù)接收到的周期性預訂指定商品對象的請求,確定各期 任務的到期執(zhí)行時間;
[0052] 任務數(shù)據(jù)保存單元202,用于根據(jù)各期任務分別對應的到期執(zhí)行時間W及所述請 求中攜帶的商品對象信息生成多條任務數(shù)據(jù),將各條任務數(shù)據(jù)保存到數(shù)據(jù)庫中;
[0053] 任務數(shù)據(jù)讀取單元203,用于按照預置的讀取周期從所述數(shù)據(jù)庫中讀取當前讀取 周期內(nèi)的到期任務數(shù)據(jù);
[0054] 訂單生成單元204,用于根據(jù)所述到期任務數(shù)據(jù)中包含的商品對象信息,生成物流 訂單。
[0055] 具體實現(xiàn)時,為了能夠處理大量的任務數(shù)據(jù),該系統(tǒng)中可W包括控制服務器,W及 多個應用服務器,此時,任務數(shù)據(jù)讀取單元203可W位于各個應用服務器中,由各個應用服 務器根據(jù)控制服務器發(fā)送的控制指令W及預置的算法,確定需領取的到期任務數(shù)據(jù)的標 識,所述算法用于將當前讀取周期內(nèi)的全部到期任務數(shù)據(jù)平均分散到各個應用服務器。
[0056] 為了避免有應用服務器出現(xiàn)若機時,出現(xiàn)任務無法被執(zhí)行的情況,所述控制服務 器還可W對應用服務器的狀態(tài)進行監(jiān)控,當監(jiān)控到某臺應用服務器發(fā)生若機時,重新向其 他各個應用服務器發(fā)送控制指令。
[0057] 具體實現(xiàn)時,所述控制服務器可W為各個應用服務器分配ID號,發(fā)送給某應用服 務器的控制指令中包括應用服務器總數(shù)W及該應用服務器的ID號,應用服務器通過W下 方式確定需領取的到期任務數(shù)據(jù)的標識:
[0058] 取模運算單元,用于利用到期任務數(shù)據(jù)的標識對應用服務器總數(shù)進行取模運算;
[0059] 標識確定單元,用于將取模運算結(jié)果等于該應用服務器的ID號的各個到期任務 數(shù)據(jù),確定為該應用服務器需要領取的到期任務數(shù)據(jù)。。
[0060] 其中,每個應用服務器中啟動多個任務讀取線程,所述任務數(shù)據(jù)讀取單元203中, 不同的任務讀取線程利用不同的讀取周期從所述數(shù)據(jù)庫中讀取當前讀取周期內(nèi)的到期任 務;
[0061] 相應的,所述系統(tǒng)還可W包括:
[0062] 添加標識單元,用于在到期任務數(shù)據(jù)被一個任務讀取線程讀取并被執(zhí)行后,在所 述數(shù)據(jù)庫中為已經(jīng)被執(zhí)行的到期任務數(shù)據(jù)添加已執(zhí)行標識,W便后續(xù)的任務讀取線程在按 照各自的讀取周期讀取到期任務數(shù)據(jù)時,僅從所述數(shù)據(jù)庫中讀取當前讀取周期內(nèi)尚未被添 加已執(zhí)行標識的到期任務數(shù)據(jù)。
[0063] 其中,每個應用服務器中啟動有至少一個任務執(zhí)行線程,在同一應用服務器內(nèi),還 包括:
[0064] 隊列寫入單元,用于將不同的任務讀取線程讀取到的到期任務數(shù)據(jù)寫入到同一任 務執(zhí)行隊列內(nèi),等待所述任務執(zhí)行線程執(zhí)行。
[0065] 為了避免任務被重復執(zhí)行,該系統(tǒng)還可W包括:
[0066] 去重處理單元,用于在將不同的任務讀取線程讀取到的到期任務數(shù)據(jù)寫入到同一 任務執(zhí)行隊列的過程中,對到期任務數(shù)據(jù)進行去重處理。
[0067] 另外,該系統(tǒng)還可W包括:
[0068] 異常處理單元,用于如果某任務數(shù)據(jù)在所有任務讀取線程都已經(jīng)運行完畢之后仍 未被執(zhí)行,則將該任務數(shù)據(jù)寫入到異常隊列中,W便在異常隊列中執(zhí)行。
[0069] 為了提高數(shù)據(jù)讀取的效果,所述數(shù)據(jù)庫中可W包括多個數(shù)據(jù)表,不同的數(shù)據(jù)表用 于保存不同時間段內(nèi)的到期任務數(shù)據(jù)。
[0070] 另外,該系統(tǒng)還可W包括:
[0071] 通知單元,用于通過調(diào)用預知的倉儲系統(tǒng)
當前第3頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1