[發明專利]基于WEB服務的任務調度方法在審
| 申請號: | 201410832793.3 | 申請日: | 2014-12-29 |
| 公開(公告)號: | CN104536819A | 公開(公告)日: | 2015-04-22 |
| 發明(設計)人: | 王專;吳志祥;吳劍;張海龍;馬和平;郭鳳林;沈健;靳彩娟;陳正茂 | 申請(專利權)人: | 同程網絡科技股份有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;H04L12/24 |
| 代理公司: | 南京蘇科專利代理有限責任公司 32102 | 代理人: | 陳忠輝 |
| 地址: | 215021 江蘇省蘇州*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 web 服務 任務 調度 方法 | ||
技術領域
本發明涉及一種任務調度方法,尤其涉及一種基于WEB服務的任務調度方法。
背景技術
伴隨著網頁數據處理量的增大,有很多業務需要定時更新、同步的任務。尤其針對旅游業相關的網站,會涉及同步政策、定時付款、定時分單等。并且,隨著業務的不斷發展,會產生更多的定時任務。任務調度算法可以方便的對這些任務進行定時調度,并且不影響每個任務的獨立性,提供一個統一模板方法類,使得API端可快速的接入任務調度算法,算法中使用異步回寫機制記錄任務執行的狀況,方便對任務的執行狀態、運行效率等進行監控。
關于Quartz.net,其是一個開源的任務調度框架,是Quartz?API的.net移植,用c#寫成。可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的程序。Quartz.net的特點是調度簡單,只需要簡單的創建實現類,并且綁定一個觸發器即可進行調度。支持簡單或較復雜的調度,可自定義調度方式或通過Cron表達式調度,Quartz.net框架內部集成了線程池管理,支持多線程的并發處理,Quartz能夠運行在任何一個獨立的應用程序中,Quartz應用能夠被集群,可自行選擇水平集群還是垂直集群。
關于HTTP通信協議,其是目前Internet上應用最廣泛的通信協議之一,它允許用戶提出HTTP請求(request),然后由服務器視實際處理結果傳回HTTP回應(response),其基本允許方式:當用戶向web服務器送出請求時,web服務器將會開啟一個新連接。通過這個連接,用戶可以將HTTP請求傳送給web服務器。當web服務器收到HTTP請求時,將進行解析與處理,并將處理結果包裝成HTTP回應。最后,web服務器會將HTTP回應傳送至用戶。只要用戶接收到回應,web服務器將會關閉這個連接,用戶的執行狀態將不會被保存。
關于模板方法,其是把我們不知道具體實現的步驟封裝成抽象方法,提供一個按正確順序執行它們的具體方法(“這些具體方法”統稱為模板方法),這樣構成一個抽象基類。子類通過繼承這個抽象基類去實現各個步驟的抽象方法,而工作流程卻由父類控制。任務調度算法中提供一個模板方法類,API端繼承這個模板方法類,實現自己的邏輯代碼,而對于接受HTTP請求并分析,響應請求,異步調用邏輯代碼等都由模板方法類控制完成。
關于負載均衡:Quartz支持技術數據庫的集群搭建。任務調度服務端可以搭建多個節點,每個節點上都是一個獨立的任務調度服務,通過數據庫中對于觸發器的狀態驗證,如果該觸發器已經被觸發,不再觸發該觸發器,保證同一個任務不會被重復觸發;當某一個任務調度服務端停止工作后,其他節點上的任務調度服務器會檢測該到該觸發器的狀態處于未觸發狀態,則會觸發它。
發明內容
本發明的目的就是為了解決現有技術中存在的上述問題,提供一種基于WEB服務的任務調度方法。
本發明的目的通過以下技術方案來實現:
基于WEB服務的任務調度方法,其特征在于:采用API端異步調用自主的實現方法,將方法執行的結果,通過HTTP的方式發送回寫請求到任務調度服務端,所述的API端自主完成自身任務,所述的任務調度服務集成有Quartz.net框架的WEB服務,所述的WEB服務啟動時,實例化至少一個調度器,通過WEB服務器從數據庫中讀取任務的配置信息,將Quartz對象裝載到調度器其中,啟動調度器即可,所述的Quartz對象為Triggers及Jobs構成,所述的API端為具體任務的業務邏輯實現端,所述API端的程序繼承自定義基類,根據自定義基類的流程,自動完成對任務調度服務端發送的HTTP請求進行分析,并響應分析結果。
上述的基于WEB服務的任務調度方法,其中:所述的自定義基類為模板方法類,定義了API端接受任務調度服務端HTTP請求,分析請求內容,發送HTTP響應,異步調用API自主的實現方法,發送回寫信息。
進一步地,上述的基于WEB服務的任務調度方法,其中:所述的配置信息為任務唯一標識,包括有所屬分組、Cron表達式、API端Url、生成Quartz對象。
更進一步地,上述的基于WEB服務的任務調度方法,其中:所述的任務調度服務端在發送HTTP請求之前,先創建至少一條記錄保存到數據庫,表示該任務已經啟動觸發,然后任務調度服務端向API端發送HTTP請求,若收到API端的響應,則修改數據庫記錄狀態為運行中,若沒有收到,則不做處理。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于同程網絡科技股份有限公司,未經同程網絡科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410832793.3/2.html,轉載請聲明來源鉆瓜專利網。





