一種確定執行調度任務的方法及執行調度任務的第一主機的制作方法
【專利摘要】本發明公開了一種確定執行調度任務的方法及執行調度任務的第一主機,該方法包括第一主機通過判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,若否,所述第一主機在執行調度任務之前,訪問狀態標識位,若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。通過雙主機模式可以保障主機的正常運行,通過雙主機競爭一個狀態標識位的模式,可以使得兩個主機都可以進行調度操作,滿足了系統對穩定性的要求。
【專利說明】
一種確定執行調度任務的方法及執行調度任務的第一主機
技術領域
[0001]本發明涉及通信技術領域,尤其涉及一種確定執行調度任務的方法及執行調度任務的第一主機。
【背景技術】
[0002]在目前的IT基礎架構中,對于系統的安全和穩定性有著非常高的要求,現有的對調度節點所在主機的運行保障的方法是:調度節點所在的主機運行,不進行保障,出現問題后通過重啟主機,重新運行應用來進行恢復,操作簡單,適用于對穩定性要求不高的系統。
[0003]而現有的保障方法存在單機穩定性差,發生宕機故障后,只能將調度從頭開始,調度出現問題很難及時發現。
【發明內容】
[0004]本發明實施例提供一種確定執行調度任務的方法及執行調度任務的第一主機,用以保障調度節點的正常運行,滿足系統對穩定性的要求。
[0005]本發明實施例提供的一種確定執行調度任務的方法,包括:
[0006]第一主機判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,所述第一主機與所述第二主機之間通過心跳鏈路連接;
[0007]若否,所述第一主機在執行調度任務之前,訪問狀態標識位;
[0008]若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。
[0009]較佳地,若所述第二主機處于宕機狀態,所述第一主機確定所述第一主機與外網的通信鏈路是否可用;
[0010]若所述第一主機與外網的通信鏈路可用,則所述第一主機訪問所述狀態標識位,將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。
[0011]較佳地,將所述狀態標識位的狀態設置為獨用狀態之后,還包括:
[0012]若確定所述第二主機處于非宕機狀態,則所述第一主機執行完所述調度任務,將所述狀態標識位的狀態設置為空閑狀態。
[0013]較佳地,若所述第一主機與所述第二主機之間的心跳鏈路中斷,則所述第一主機確定所述第一主機與外網的通信鏈路是否可用;
[0014]若是,則所述第一主機訪問狀態標識位;
[0015]若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。
[0016]較佳地,還包括:所述第一主機執行完所述調度任務后,將所述狀態標識位的狀態設置為空閑狀態。
[0017]相應地,本發明實施例還提供了一種執行調度任務的第一主機,包括:
[0018]判斷單元,用于判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,所述第一主機與所述第二主機之間通過心跳鏈路連接;
[0019]訪問單元,用于若確定所述第二主機處于宕機狀態,在執行調度任務之前,訪問狀態標識位;
[0020]調度單元,用于若所述狀態標識位的狀態為空閑狀態,則將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。
[0021]較佳地,所述調度單元具體用于:
[0022]若所述第二主機處于宕機狀態,則確定所述第一主機與外網的通信鏈路是否可用;
[0023]若與外網的通信鏈路可用,則訪問所述狀態標識位,將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。
[0024]較佳地,所述調度單元還用于:
[0025]將所述狀態標識位的狀態設置為獨用狀態之后,若確定所述第二主機處于非宕機狀態,則執行完所述調度任務,將所述狀態標識位的狀態設置為空閑狀態。
[0026]較佳地,所述調度單元具體用于:
[0027]若所述第一主機與所述第二主機之間的心跳鏈路中斷,則確定所述第一主機與外網的通信鏈路是否可用;
[0028I若是,則訪問狀態標識位;
[0029]若所述狀態標識位的狀態為空閑狀態,則將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。
[0030]較佳地,所述調度單元還用于:
[0031]執行完所述調度任務后,將所述狀態標識位的狀態設置為空閑狀態。
[0032]本發明實施例表明,第一主機通過判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,若否,所述第一主機在執行調度任務之前,訪問狀態標識位,若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。通過雙主機模式可以保障主機的正常運行,通過雙主機競爭一個狀態標識位的模式,可以使得兩個主機都可以進行調度操作,滿足了系統對穩定性的要求。
【附圖說明】
[0033]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0034]圖1為本發明實施例中提供的一種確定執行調度任務的方法的流程示意圖;
[0035]圖2a至圖2j為本發明實施例中提供的一種確定執行調度任務的方法的流程示意圖;
[0036]圖3為本發明實施例中提供的一種執行調度任務的第一主機的結構示意圖。
【具體實施方式】
[0037]為了使本申請的目的、技術方案和優點更加清楚,下面將結合附圖對本申請作進一步地詳細描述,顯然,所描述的實施例僅僅是本申請一部份實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬于本申請保護的范圍。
[0038]本發明實施例中的第一主機與第二主機為相互備份的兩個主機,每個主機都可以單獨執行調度任務,第一主機與第二主機不分等級,處于同等地位,本發明實施例僅是示例作用,不限于此。
[0039]圖1示出了本發明實施例提供的一種確定執行調度任務的流程,該流程可以由主機執行。
[0040]如圖1所示,該流程的具體步驟包括:
[0041]步驟101,第一主機判斷與所述第一主機互為備份的第二主機是否處于宕機狀態。若否,則轉入步驟102,若是,則轉入步驟104。
[0042]步驟102,所述第一主機在執行調度任務之前,訪問狀態標識位。
[0043]步驟103,若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。
[0044]步驟104,所述第一主機確定所述第一主機與外網的通信鏈路是否可用,若是,則轉入步驟105。
[0045]步驟105,所述第一主機訪問所述狀態標識位,將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。
[0046]在步驟101中,第一主機與第二主機之間是通過心跳鏈路連接的,第一主機通過判斷第二主機的調度進程是否可用,可以確定第二主機是否處于宕機狀態,若第二主機的調度進程可用,則第二主機處于非宕機狀態,若第二主機的調度進程不可用,則第二主機處于宕機狀態。若第一主機與第二主機之間的心跳鏈路中斷了,則第一主機無法判斷第二主機是否處于宕機狀態。第一主機和第二主機配置了相同的應用程序。
[0047]第一主機確定第二主機宕機的方法:第一主機發送報文,第二主機接收到報文后,向第二主機回復一個確認的報文,此時第一主機獲取第二主機非宕機狀態。若第一主機發送的報文沒有發送任何變動,直接返回,則確認第二主機宕機。若第一主機發送的報文沒有任何回復報文,則確認心跳鏈路中斷。
[0048]在步驟102中,若第一主機在步驟101中確定第二主機處于非宕機狀態,則第一主機在執行任務前,先訪問狀態標識位,該狀態標識位可以位于數據庫的表中,也可以位于其他的存儲空間內。狀態標識位的狀態可以分為空閑狀態、使用狀態或獨用狀態,可以使用數字進行區分,如空閑狀態為0,使用狀態為I,獨用狀態為-1或-2。其中,當獨用狀態為-1時,表示兩個主機中有一個處于宕機狀態,可以便于工人人員檢修,當獨用狀態為-2,表示兩個主機都沒有宕機,但是兩個主機間的心跳鏈路中斷了。該狀態標識位的狀態可以根據實際需求進行設定。
[0049]在步驟103中,若第一主機在步驟102中訪問到狀態標識位的狀態是O,即空閑狀態,則該第一主機將該狀態標識位的狀態進行更新,設置為使用狀態,即狀態更新為I。表示該第一主機已經搶到任務的調度權,并開始執行相應的調度任務。同樣,若第二主機訪問到狀態標識位的狀態時0,也可以將該狀態標識位的狀態更新為I,并執行相應的調度任務。
[0050]在步驟104中,若第一主機在步驟101中確定第二主機處于宕機狀態,則該第一主機需要確定與外網的通信鏈路是否可用,看是否是因為自身與外網的網絡中斷導致無法與第二主機進行通信的。第一主機通過Ping命令Ping外網的網關,如果能夠Ping通外網的網關,則證明第一主機自身沒有問題。具體的,第一主機通過Ping命令獲取已經配置好的外網的網關地址,如果該網關返回數據包,表示該第一主機是能夠與外網的通信鏈路是可用,否則表示該第一主機自己宕機。
[0051]在步驟105中,第一主機在步驟104中可以確定與外網的通信鏈路是可用的,則第一主機訪問狀態標識位,將該狀態標識位的狀態設置為獨用狀態,由于是第二主機宕機,則將狀態標識位的狀態設置為-1,并開始執行調度任務。
[0052]第一主機在將狀態標識位的狀態設置為獨用狀態之后之后,當第一主機確定第二主機處于非宕機狀態時,則第一主機執行完調度任務后,將狀態標識位的狀態設置為空閑狀態。
[0053]可選地,若上述第一主機與第二主機之間的心跳鏈路中斷,則第一主機需要確定與外網的通信鏈路是否可用,若是可用,則第一主機訪問狀態標識位,訪問到狀態標識位的狀態是空閑狀態,則第一主機將狀態標識位的狀態設置為獨用狀態,由于是心跳鏈路中斷,則狀態標識位的狀態可以設置為-2。表示第一主機與第二主機之間的心跳鏈路中斷了。然后開始執行調度任務。直到第一主機與第二主機之間的心跳鏈路恢復后,調度任務執行完,將狀態標識位的狀態設置為空閑狀態。
[0054]本上述實施例表明,第一主機通過判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,若否,所述第一主機在執行調度任務之前,訪問狀態標識位,若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。通過雙主機模式可以保障主機的正常運行,通過雙主機競爭一個狀態標識位的模式,可以使得兩個主機都可以進行調度操作,滿足了系統對穩定性的要求。
[0055]為了更好的解釋本發明構思,本發明實施例提供了具體應用場景下的確定執行調度任務的流程。
[0056]如圖2a至圖2j所示的流程,在圖2a中可以看出,本發明實施例中提供了主機I和主機2、網關以及狀態標識位,狀態標識位的狀態為O,主機I和主機2是通過心跳鏈路進行通信的。
[0057]如圖2b所示,主機I和主機2之間的心跳鏈路暢通,主機I與主機2進行競爭狀態標識位。
[0058]如圖2c所示,主機I競爭到狀態標識位,并將該狀態標識位的狀態置為I。開始在數據庫中進行調度操作。
[0059]如圖2d所示,若是主機2競爭到狀態標識位,則將該狀態標識位的狀態置為I,開始在數據庫中執行調度任務。
[0060]如圖2e所示,主機I與主機2之間無法進行通信,則主機I開始通過ping命令ping外網的網關,如圖2f所不。
[0061 ] 在圖2g中,主機I可以ping通外網的網關,此時是主機2宕機,則將狀態標識位的狀態設置為專屬狀態-1,并進行相應的調度操作。
[0062]在圖2h中,主機2同樣也可以ping通外網的網關,此時是主機I宕機,則將狀態標識位的狀態設置為專屬狀態-1,并進行相應的調度操作。
[0063]在圖2i中,若主機I和主機2之間的心跳鏈路中斷了,則主機I和主機2都通過ping命令Ping外網的網關,確定都可以與外網進行通信時,則主機I與主機2進行競爭狀態標識位,主機I競爭到之后,將狀態標識位的狀態設置為-2,并進行相應的調度操作。如圖2j所示,主機2競爭到之后,將狀態標識位的狀態設置為-2,并進行相應的調度操作。
[0064]基于相同的技術構思,圖3示出了本發明實施例提供的一種執行調度任務的第一主機的結構,該主機可以執行確定執行調度任務的方法。
[0065]如圖3所示,該第一主機具體包括:
[0066]判斷單元301,用于判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,所述第一主機與所述第二主機之間通過心跳鏈路連接;
[0067]訪問單元302,用于若確定所述第二主機處于宕機狀態,在執行調度任務之前,訪問狀態標識位;
[0068]調度單元303,用于若所述狀態標識位的狀態為空閑狀態,則將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。
[0069]優選地,所述調度單元303具體用于:
[0070]若所述第二主機處于宕機狀態,則確定所述第一主機與外網的通信鏈路是否可用;
[0071]若與外網的通信鏈路可用,則訪問所述狀態標識位,將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。
[0072]優選地,所述調度單元303還用于:
[0073]將所述狀態標識位的狀態設置為獨用狀態之后,若確定所述第二主機處于非宕機狀態,則執行完所述調度任務,將所述狀態標識位的狀態設置為空閑狀態。
[0074]優選地,所述調度單元303具體用于:
[0075]若所述第一主機與所述第二主機之間的心跳鏈路中斷,則確定所述第一主機與外網的通信鏈路是否可用;
[0076]若是,則訪問狀態標識位;
[0077]若所述狀態標識位的狀態為空閑狀態,則將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。
[0078]優選地,所述調度單元303還用于:
[0079]執行完所述調度任務后,將所述狀態標識位的狀態設置為空閑狀態。
[0080]本申請是參照根據本申請實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0081]這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0082]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0083]盡管已描述了本申請的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請范圍的所有變更和修改。
[0084]顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。
【主權項】
1.一種確定執行調度任務的方法,其特征在于,包括: 第一主機判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,所述第一主機與所述第二主機之間通過心跳鏈路連接; 若否,所述第一主機在執行調度任務之前,訪問狀態標識位; 若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。2.如權利要求1所述的方法,其特征在于,若所述第二主機處于宕機狀態,所述第一主機確定所述第一主機與外網的通信鏈路是否可用; 若所述第一主機與外網的通信鏈路可用,則所述第一主機訪問所述狀態標識位,將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。3.如權利要求2所述的方法,其特征在于,將所述狀態標識位的狀態設置為獨用狀態之后,還包括: 若確定所述第二主機處于非宕機狀態,則所述第一主機執行完所述調度任務,將所述狀態標識位的狀態設置為空閑狀態。4.如權利要求1所述的方法,其特征在于,若所述第一主機與所述第二主機之間的心跳鏈路中斷,則所述第一主機確定所述第一主機與外網的通信鏈路是否可用; 若是,則所述第一主機訪問狀態標識位; 若所述狀態標識位的狀態為空閑狀態,則所述第一主機將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。5.如權利要求1-4任一項所述的方法,其特征在于,還包括:所述第一主機執行完所述調度任務后,將所述狀態標識位的狀態設置為空閑狀態。6.一種執行調度任務的第一主機,其特征在于,包括: 判斷單元,用于判斷與所述第一主機互為備份的第二主機是否處于宕機狀態,所述第一主機與所述第二主機之間通過心跳鏈路連接; 訪問單元,用于若確定所述第二主機處于宕機狀態,在執行調度任務之前,訪問狀態標識位; 調度單元,用于若所述狀態標識位的狀態為空閑狀態,則將所述狀態標識位的狀態設置為使用狀態,并執行調度任務。7.如權利要求6所述的第一主機,其特征在于,所述調度單元具體用于: 若所述第二主機處于宕機狀態,則確定所述第一主機與外網的通信鏈路是否可用; 若與外網的通信鏈路可用,則訪問所述狀態標識位,將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。8.如權利要求7所述的第一主機,其特征在于,所述調度單元還用于: 將所述狀態標識位的狀態設置為獨用狀態之后,若確定所述第二主機處于非宕機狀態,則執行完所述調度任務,將所述狀態標識位的狀態設置為空閑狀態。9.如權利要求6所述的第一主機,其特征在于,所述調度單元具體用于: 若所述第一主機與所述第二主機之間的心跳鏈路中斷,則確定所述第一主機與外網的通信鏈路是否可用; 若是,則訪問狀態標識位; 若所述狀態標識位的狀態為空閑狀態,則將所述狀態標識位的狀態設置為獨用狀態,并執行調度任務。10.如權利要求6-9任一項所述的第一主機,其特征在于,所述調度單元還用于: 執行完所述調度任務后,將所述狀態標識位的狀態設置為空閑狀態。
【文檔編號】H04L12/24GK105933135SQ201510786009
【公開日】2016年9月7日
【申請日】2015年11月16日
【發明人】張帆, 呂伊蒙, 馮哲
【申請人】中國銀聯股份有限公司