两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

任務處理方法及裝置的制造方法

文檔序號:8395704閱讀:372來源:國知局
任務處理方法及裝置的制造方法
【專利說明】
[0001] 本發(fā)明專利申請是申請日為2011年12月27日、申請?zhí)枮?01110444845. 6、名稱 為"任務處理方法及裝置"的中國發(fā)明專利申請的分案申請。
技術領域
[0002] 本申請涉及網絡技術領域,特別是涉及一種任務處理方法及裝置。
【背景技術】
[0003] 多道流水線處理技術,是一種基于網絡消息通信的工作調度系統(tǒng)。在大規(guī)模分布 式環(huán)境中,常使用多道流水線處理技術對數(shù)據處理任務進行高效地發(fā)布、分配和處理。
[0004] 目前,多道流水線處理技術一般使用分布式消息隊列實現(xiàn)。分布式消息隊列中, 通常包含三個基本組件,即,消息發(fā)布組件,消息中轉組件和消息處理組件。其中,消息 發(fā)布組件,為系統(tǒng)的使用者提供了固定的API (Application Programming Interface, 應用程序接口),方便使用者提交自己的任務消息,消息被提交后,消息發(fā)布組件,將通 過 TCP(Transmission Control Protocol,傳輸控制協(xié)議)協(xié)議或 UDP(User Datagram Protocol,用戶數(shù)據報協(xié)議)協(xié)議,將任務消息發(fā)送至消息中轉組件;消息中轉組件的作用 是臨時存儲消息,并將任務消息的發(fā)布信息通信給消息處理組件;當消息處理組件接收到 來自消息中轉組件的通知,將通過TCP協(xié)議或UDP協(xié)議接收任務消息,之后將該任務消息提 交給處理單元進行處理,此時,消息中轉組件將負責將消息置為不可見狀態(tài),防止多個任務 處理單元接收到同樣的任務消息;處理單元完成處理后,將根據處理結果發(fā)布消息至消息 中轉組件,當處理成功時,消息處理組件將通知消息中轉組件刪除該消息;當處理失敗時, 消息處理組件將通知消息中轉組件把該消息重新置為可見狀態(tài),這樣可以使其他處理單元 有機會再次處理該任務。
[0005] -種分布式消息隊列系統(tǒng)是如圖1所示的Gearman系統(tǒng)。Gearman是目前基于 C/C++實現(xiàn)的一個分布式消息隊列系統(tǒng),主要包含三個組件:Gearman Client,Gearman Server與Gearman Worker,分別對應于上述的消息發(fā)布組件、消息中轉組件和消息處 理組件。Gearman系統(tǒng)對于消息處理的流程,如圖1中所示,包括:Gearman Client向 Gearman Server發(fā)布任務;Gearman Server接收任務后,通過任務調度,將任務交給 Gearman Worker進行處理;Gearman Worker對任務進行處理,并將處理結果返回給Gearman Server ;Gearman Server根據返回的處理結果對其保存的任務進行相應地處理,如刪除或 重置為可見狀態(tài)等,至次,一次任務處理完成。
[0006] 可見,使用分布式消息隊列這一實現(xiàn)方式,使得任務發(fā)布組件無需關心任務處理 單元的位置,只需發(fā)送任務消息至消息中轉組件,實現(xiàn)了任務發(fā)布與任務處理的解耦合。另 一方面,任務消息由中轉組件進行統(tǒng)一管理,降低了任務處理失敗后的重新調試難度。
[0007] 然而,目前的各類分布式消息隊列系統(tǒng),都缺乏對于網絡連接的有效管理,對于已 經建立的網絡連接,通常不對其連接狀態(tài)進行監(jiān)控與管理,而僅僅依賴于系統(tǒng)的網絡功能 進行控制。這樣,雖然可以在理想的網絡環(huán)境中取得比較好的性能測試結果,但在實際使用 中,特別是大規(guī)模分布式集群中,常常因為單個節(jié)點的故障,而使得所有消息發(fā)送與接收環(huán) 節(jié)都要多次嘗試連接一個失敗的節(jié)點,這樣對于性能的影響非常巨大。

【發(fā)明內容】

[0008] 本申請所要解決的技術問題是提供一種任務處理方法及裝置,以解決目前的分布 式消息隊列系統(tǒng)中,因節(jié)點失效造成集群處理能力下降的問題。
[0009] 為了解決上述問題,本申請公開了一種任務處理方法,包括:設置一個或多個用于 存儲所述分布式消息隊列中各個組件之間的網絡連接信息的連接池;在分布式消息隊列中 的至少一個組件接收任務消息;根據所述網絡連接的信息,從所述連接池中選擇一個有效 的網絡連接;使用選擇的所述有效的網絡連接發(fā)送所述任務消息,進行所述任務消息所請 求的任務處理。
[0010] 優(yōu)選地,所述分布式消息隊列的每個組件中均設置有連接池,每個所述組件的連 接池用于存儲本組件與其它組件之間的網絡連接的信息;所述根據所述網絡連接的信息, 從所述連接池中選擇一個有效的網絡連接的步驟包括:根據所述網絡連接的信息,從接收 到所述任務消息的組件的所述連接池中選擇一個有效的網絡連接。
[0011] 優(yōu)選地,任務處理方法還包括:若使用選擇的所述有效的網絡連接發(fā)送所述任務 消息失敗,則重新選擇一個有效的網絡連接發(fā)送所述任務消息,并中斷失敗的網絡連接并 釋放其資源,將該網絡連接設置為失效的網絡連接;記錄該網絡連接中斷的時間點,在設定 的時間間隔內,不再使用該網絡連接發(fā)送任何任務消息。
[0012] 優(yōu)選地,任務處理方法還包括:當經過所述設定的時間間隔后,接收到新的任務消 息,則嘗試恢復所述中斷的網絡連接。
[0013] 優(yōu)選地,任務處理方法還包括:若嘗試恢復所述中斷的網絡連接失敗,則重新設置 該網絡連接中斷的時間點,在所述設定的時間間隔內,不再使用該網絡連接發(fā)送任何任務 消息;若嘗試恢復所述中斷的網絡連接成功,則將該網絡連接設置為有效的網絡連接。
[0014] 優(yōu)選地,在所述根據所述網絡連接的信息,從所述連接池中選擇一個有效的網絡 連接的步驟之前,還包括:根據所述網絡連接的信息,判斷所述連接池中是否存在有效的網 絡連接;若存在,則執(zhí)行所述根據所述網絡連接的信息,從所述連接池中選擇一個有效的網 絡連接的步驟;若不存在,將所述連接池中所有的網絡連接的中斷時間點設置為當前時間 點,并嘗試恢復所述連接池中所有的網絡連接。
[0015] 優(yōu)選地,任務處理方法還包括:當使用選擇的所述有效的網絡連接發(fā)送所述任務 消息成功完成后,將該網絡連接返回給所述連接池,并判斷該網絡連接的當前連接狀態(tài),根 據判斷結果,將該網絡連接設置為有效的網絡連接或者無效的網絡連接。
[0016] 優(yōu)選地,在所述多道流水線處理系統(tǒng)的分布式消息隊列中的至少一個組件接收到 任務消息的步驟之前,還包括:在所述分布式消息隊列的各個組件中設置負載均衡算法。
[0017] 優(yōu)選地,所述根據所述網絡連接的信息,從接收到所述任務消息的組件的所述連 接池中選擇一個有效的網絡連接的步驟包括:根據所述網絡連接的信息,按照所述負載均 衡算法從接收到所述任務消息的組件的所述連接池中選擇一個有效的網絡連接。
[0018] 優(yōu)選地,所述分布式消息隊列包括消息發(fā)布組件、消息中轉組件和消息處理組件; 在所述多道流水線處理系統(tǒng)的分布式消息隊列中的至少一個組件接收到任務消息的步驟 之前,還包括:將所述分布式消息隊列的各個組件中的連接池分別封裝為網絡連接循環(huán)隊 列,并且在所述消息中轉組件中設置消息優(yōu)先級隊列。
[0019] 優(yōu)選地,所述根據所述負載均衡算法和所述網絡連接的信息,從接收到所述任務 消息的組件的所述連接池中選擇一個有效的網絡連接的步驟包括:根據所述網絡連接的信 息,從接收到所述任務消息的組件的所述網絡連接循環(huán)隊列的頭部開始,選擇一個有效的 網絡連接;所述方法還包括:當使用選擇的所述有效的網絡連接發(fā)送所述任務消息成功完 成后,將該網絡連接返回所述網絡連接循環(huán)隊列的尾部。
[0020] 優(yōu)選地,所述消息中轉組件中的所述消息優(yōu)先級隊列為先進先出方式的消息優(yōu)先 級隊列;所述多道流水線處理系統(tǒng)的分布式消息隊列中的至少一個組件接收到任務消息的 步驟包括:所述消息中轉組件從所述消息優(yōu)先級隊列的頭部開始,向后查找第一個可見狀 態(tài)的任務消息作為當前待處理的任務消息。
[0021] 為了解決上述問題,本申請還公開了一種任務處理裝置,包括:連接池,用于存儲 所述分布式消息隊列中各個組件之間的網絡連接的信息;接收模塊,用于在分布式消息隊 列中的至少一個組件中接收任務消息;選擇模塊,用于根據所述網絡連接的信息,從所述連 接池中選擇一個有效的網絡連接;連接模塊,用于使用選擇的所述有效的網絡連接發(fā)送所 述任務消息,進行所述任務消息所請求的任務處理。
[0022] 優(yōu)選地,所述分布式消息隊列的每個組件中均設置有連接池,每個所述組件的連 接池用于存儲本組件與其它組件之間的網絡連接的信息;所述選擇模塊,用于根據所述網 絡連接的信息,從接收到所述任務消息的組件的所述連接池中選擇一個有效的網絡連接。
[0023] 優(yōu)選地,任務處理裝置還包括:失敗模塊,用于若所述連接模塊使用選擇的所述 有效的網絡連接發(fā)送所述任務消息失敗,則重新選擇一個有效的網絡連接發(fā)送所述任務消 息,并中斷失敗的網絡連接并釋放其資源,將該網絡連接設置為失效的網絡連接;記錄該網 絡連接中斷的時間點,在設定的時間間隔內,不再使用該網絡連接發(fā)送任何任務消息。
[0024] 優(yōu)選地,任務處理裝置還包括:重連模塊,用于當經過所述設定的時間間隔后,所 述接收模塊接收到新的任務消息,嘗試恢復所述中斷的網絡連接。
[0025] 優(yōu)選地,任務處理裝置還包括:重連設置模塊,用于若所述重連模塊嘗試恢復所述 中斷的網絡連接失敗,則重新設置該網絡連接中斷的時間點,在所述設定的時間間隔內,不 再使用該網絡連接發(fā)送任何任務消息;若嘗試恢復所述中斷的網絡連接成功,則將該網絡 連接設置為有效的網絡連接。
[0026] 優(yōu)選地,任務處理裝置還包括:判斷模塊,用于在所述選擇模塊根據所述網絡連接 的信息,從所述連接池中選擇一個有效的網絡連接之前,根據所述網絡連接的信息,判斷所 述連接池中是否存在有效的網絡連接;若存在,則執(zhí)行所述選擇模塊;若不存在,將所述連 接池中所有
當前第1頁1 2 3 4 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
儋州市| 大邑县| 霍城县| 铅山县| 大庆市| 乌鲁木齐县| 锡林郭勒盟| 临沭县| 仪陇县| 淅川县| 玉山县| 宜丰县| 淅川县| 定州市| 香河县| 麻江县| 九江市| 玛纳斯县| 马关县| 凭祥市| 瑞丽市| 郴州市| 塔城市| 洛南县| 阳谷县| 滁州市| 朝阳市| 舞钢市| 九龙县| 宝山区| 应城市| 吉安县| 明溪县| 双柏县| 日土县| 普宁市| 化隆| 平果县| 肇东市| 富锦市| 专栏|