計劃任務(wù)單例程序的部署及運行方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計算機技術(shù)領(lǐng)域,尤其涉及一種計劃任務(wù)單例程序的部署及運行方 法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002] 后臺程序中有很多需要定時執(zhí)行的計劃任務(wù)(Crontab)單例程序。Crontab是Unix 和Linux用于設(shè)置周期性被執(zhí)行的指令,是互聯(lián)網(wǎng)領(lǐng)域的常用技術(shù),很多任務(wù)都會設(shè)置在 Crontab循環(huán)執(zhí)行,如果不使用Crontab,那么該任務(wù)就是常駐程序,這對程序的要求比較 高,一個是要求程序24 X 7小時不宕機,一個是要求調(diào)度程序比較可靠;而在實際工作中, 90%的程序都沒有必要花費過多時間和精力去解決上述兩個問題,只需編輯程序的業(yè)務(wù)邏 輯而通過Crontab這個工業(yè)級程序去調(diào)度即可,Crontab毫無疑問的具備可靠性和健壯性。
[0003] 計劃任務(wù)單例程序受到單例的條件約束,不允許同時在本機或者多臺服務(wù)器上啟 動多個進程,而傳統(tǒng)的分布式部署方式會使計劃任務(wù)單例程序在同一時間啟動多個進程, 因此計劃任務(wù)單例程序無法直接采用傳統(tǒng)的分布式部署方式,否則會導(dǎo)致數(shù)據(jù)寫入重復(fù)等 問題。受此限制,計劃任務(wù)單例程序通常采用的是單機部署方式。
[0004] 現(xiàn)有針對計劃任務(wù)單例程序的單機部署方式有駁于高可用的架構(gòu)設(shè)計,當(dāng)出現(xiàn)自 然或人為災(zāi)害等原因?qū)е路?wù)器宕機時,無法自動進行業(yè)務(wù)降級,導(dǎo)致業(yè)務(wù)功能缺失。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明提供一種計劃任務(wù)單例程序的部署及運行方法、裝置和系統(tǒng),用 以使計劃任務(wù)單例程序?qū)崿F(xiàn)高可用性,當(dāng)服務(wù)器宕機時可以實現(xiàn)業(yè)務(wù)自動降級。
[0006] 為了實現(xiàn)上述目的,本發(fā)明提供一種計劃任務(wù)單例程序的部署方法,所述計劃任 務(wù)單例程序需要部署的業(yè)務(wù)服務(wù)器包括至少兩臺,所述部署方法包括:
[0007] 按照所述計劃任務(wù)單例程序的執(zhí)行時間,為每一臺業(yè)務(wù)服務(wù)器配置不同的執(zhí)行所 述計劃任務(wù)單例程序的觸發(fā)時間;
[0008] 根據(jù)所述計劃任務(wù)單例程序的循環(huán)周期,為每一臺業(yè)務(wù)服務(wù)器配置進程的最大執(zhí) 行時長,所述進程的最大執(zhí)行時長小于所述計劃任務(wù)單例程序的循環(huán)周期。
[0009] 進一步地,上述部署方法還可具有以下特點,按照所述計劃任務(wù)單例程序的執(zhí)行 時間,為每一臺業(yè)務(wù)服務(wù)器配置不同的執(zhí)行所述計劃任務(wù)單例程序的觸發(fā)時間,具體包括:
[0010] 按照計劃任務(wù)單例程序的執(zhí)行時間,配置各臺業(yè)務(wù)服務(wù)器按照設(shè)定次序輪流執(zhí)行 所述計劃任務(wù)單例程序。
[0011] 進一步地,上述部署方法還可具有以下特點,所述業(yè)務(wù)服務(wù)器包括兩臺;以及
[0012] 按照計劃任務(wù)單例程序的執(zhí)行時間,配置各臺業(yè)務(wù)服務(wù)器按照設(shè)定次序輪流執(zhí)行 所述計劃任務(wù)單例程序,具體包括:
[0013] 按照計劃任務(wù)單例程序的執(zhí)行時間,配置該兩臺業(yè)務(wù)服務(wù)器錯時交替執(zhí)行所述計 劃任務(wù)單例程序。
[0014] 基于同一技術(shù)構(gòu)思,本發(fā)明還提供了一種計劃任務(wù)單例程序的部署裝置,包括:
[0015] 觸發(fā)時間配置模塊,用于按照所述計劃任務(wù)單例程序的執(zhí)行時間,為每一臺業(yè)務(wù) 服務(wù)器配置不同的執(zhí)行所述計劃任務(wù)單例程序的觸發(fā)時間,所述計劃任務(wù)單例程序需要部 署的業(yè)務(wù)服務(wù)器包括至少兩臺;
[0016] 執(zhí)行時長配置模塊,用于根據(jù)所述計劃任務(wù)單例程序的循環(huán)周期為每一臺業(yè)務(wù)服 務(wù)器配置進程的最大執(zhí)行時長,所述進程的最大執(zhí)行時長小于所述計劃任務(wù)單例程序的循 環(huán)周期。
[0017] 進一步地,上述部署裝置還可具有以下特點,所述觸發(fā)時間配置模塊,具體用于按 照計劃任務(wù)單例程序的執(zhí)行時間,配置各臺業(yè)務(wù)服務(wù)器按照設(shè)定次序輪流執(zhí)行所述計劃任 務(wù)單例程序。
[0018] 進一步地,上述部署裝置還可具有以下特點,所述業(yè)務(wù)服務(wù)器包括兩臺;以及
[0019] 所述觸發(fā)時間配置模塊,具體用于按照計劃任務(wù)單例程序的執(zhí)行時間,配置該兩 臺業(yè)務(wù)服務(wù)器錯時交替執(zhí)行所述計劃任務(wù)單例程序。
[0020] 基于同一技術(shù)構(gòu)思,本發(fā)明還提供了一種計劃任務(wù)單例程序的運行系統(tǒng),包括計 劃任務(wù)單例程序的部署裝置和至少兩臺計劃任務(wù)單例程序需要部署的業(yè)務(wù)服務(wù)器,其中:
[0021] 所述部署裝置,用于按照所述計劃任務(wù)單例程序的執(zhí)行時間,為每一臺業(yè)務(wù)服務(wù) 器配置不同的執(zhí)行所述計劃任務(wù)單例程序的觸發(fā)時間,并根據(jù)所述計劃任務(wù)單例程序的循 環(huán)周期為每一臺業(yè)務(wù)服務(wù)器配置進程的最大執(zhí)行時長;
[0022] 每一臺業(yè)務(wù)服務(wù)器,用于在配置的觸發(fā)時間到達時,啟動進程執(zhí)行所述計劃任務(wù) 單例程序,所述進程的最大執(zhí)行時長小于所述計劃任務(wù)單例程序的循環(huán)周期。
[0023] 進一步地,上述運行系統(tǒng)還可具有以下特點,所述部署裝置,具體用于按照計劃任 務(wù)單例程序的執(zhí)行時間,配置各臺業(yè)務(wù)服務(wù)器按照設(shè)定次序輪流執(zhí)行所述計劃任務(wù)單例程 序。
[0024] 進一步地,上述運行系統(tǒng)還可具有以下特點,所述業(yè)務(wù)服務(wù)器包括兩臺;以及
[0025] 所述部署裝置,具體用于按照計劃任務(wù)單例程序的執(zhí)行時間,配置該兩臺業(yè)務(wù)服 務(wù)器錯時交替執(zhí)行所述計劃任務(wù)單例程序。
[0026] 基于同一技術(shù)構(gòu)思,本發(fā)明還提供了一種計劃任務(wù)單例程序的運行方法,所述計 劃任務(wù)單例程序需要部署的業(yè)務(wù)服務(wù)器包括至少兩臺,所述運行方法包括:
[0027] 按照所述計劃任務(wù)單例程序的執(zhí)行時間,為每一臺業(yè)務(wù)服務(wù)器配置不同的執(zhí)行所 述計劃任務(wù)單例程序的觸發(fā)時間;并
[0028] 根據(jù)所述計劃任務(wù)單例程序的循環(huán)周期,為每一臺業(yè)務(wù)服務(wù)器配置進程的最大執(zhí) 行時長;
[0029] 每一臺業(yè)務(wù)服務(wù)器在配置的觸發(fā)時間到達時,啟動進程執(zhí)行所述計劃任務(wù)單例程 序,所述進程的最大執(zhí)行時長小于所述計劃任務(wù)單例程序的循環(huán)周期。
[0030] 本發(fā)明提供的計劃任務(wù)單例程序的部署及運行方法、裝置和系統(tǒng),將計劃任務(wù)單 例程序分布式部署在至少兩臺業(yè)務(wù)服務(wù)器中,并為每一臺業(yè)務(wù)服務(wù)器配置不同的觸發(fā)時 間,以保證不會發(fā)生同一時間啟動多個相同進程的情況。并且,配置進程的最大執(zhí)行時長小 于計劃任務(wù)單例程序的循環(huán)周期,以確保不會發(fā)生某臺業(yè)務(wù)服務(wù)器啟動進程時,其它業(yè)務(wù) 服務(wù)器進程尚未退出的情況。本方案既采用了分布式部署方式,又同時兼顧了計劃任務(wù)單 例程序不允許啟動多個進程的特點,可以使計劃任務(wù)單例程序?qū)崿F(xiàn)高可用性。當(dāng)其中一臺 業(yè)務(wù)服務(wù)器宕機時,只會在某些觸發(fā)時間不啟動進程,其它業(yè)務(wù)服務(wù)器配置的觸發(fā)時間仍 然會按時執(zhí)行,從而實現(xiàn)業(yè)務(wù)自動降級的目的,保障業(yè)務(wù)功能。
[0031] 本申請的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優(yōu)點可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【附圖說明】
[0032] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的 一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0033] 圖1是本發(fā)明實施例中計劃任務(wù)單例程序的部署方法流程圖;
[0034]圖2是本發(fā)明實施例中計劃任務(wù)單例程序的部署裝置框圖;
[0035] 圖3是本發(fā)明實施例中計劃任務(wù)單例程序的運行系統(tǒng)框圖;
[0036] 圖4是本發(fā)明實施例中計劃任務(wù)單例程序的運行方法流程圖。
【具體實施方式】
[0037] 本發(fā)明實施例提供一種計劃任務(wù)單例程序的部署及運行方法、裝置和系統(tǒng),采用 分布式部署方式同時兼顧計劃任務(wù)