亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

異步任務處理方法及系統(tǒng)與流程

文檔序號:12363147閱讀:606來源:國知局
異步任務處理方法及系統(tǒng)與流程

本發(fā)明涉及異步處理技術領域,具體而言,涉及一種異步任務處理方法及系統(tǒng)。



背景技術:

目前,隨著互聯網技術的快速發(fā)展,涌現了很多互聯網交易平臺,如聚美優(yōu)品;這些交易平臺可以將自己的商品通過專屬網站進行展示銷售,或者將第三方的商品通過上述專屬網站進行展示銷售,以供用戶查看及購買。

當第三方的商家與互聯網交易平臺合作后,即可通過互聯網交易平臺展示其銷售商品時;對應的,互聯網交易平臺需要通過固定的任務機制定期制作平臺與商家的對賬單,上述對賬單中包括很多平臺與商家的明細數據,其中,該明細數據是超大型的財務報表。此時,商家和平臺對應的業(yè)務員需要定期下載上述對賬單中的明細數據,并對下載的明細數據進行審核,以確認上述明細數據是否正確。

目前,互聯網交易平臺的固定任務機制只是定期制作平臺與商家的對賬單,在接收到商家或者是平臺方的業(yè)務員的報表下載請求時,生成對應上述下載請求的報表,然后在進行下載工作;但是,上述工作中,由于被下載的明細數據是超大型的財務報表,且平臺中的PHP(PHP:Hypertext Preprocessor,超文本預處理器)和web server(網頁服務器或web服務器)都有各自的最大運行時間,故同時進行生成報表和下載上述大型報表,會導致部分大報表下載的時候出現程序崩潰現象。

并且,目前的上述固定任務機制,大部分都是只能在一個平臺的項目內部應用,該平臺的其它項目或者其他開源的脫離項目之外的,想要應用需要程序工程師重新開發(fā),使得投入成本高且耗費時間長,并且重新進行機制的開發(fā)也對程序工程師的經驗和技術提出的較高的要求。

發(fā)明人在研究中發(fā)現,現有技術中互聯網交易平臺中的固定任務機制在解決下載大型報表的問題時均不理想,針對上述問題,目前尚未提出較好的解決方式。



技術實現要素:

有鑒于此,本發(fā)明實施例的目的在于提供一種異步任務處理方法及系統(tǒng),其能夠適用內部項目、其他項目和其他開源的應用,適用范圍廣,為工程師節(jié)省了開發(fā)時間,且降低了開發(fā)成本。

第一方面,本發(fā)明實施例提供了一種異步任務處理方法,所述方法包括:

當監(jiān)測到生成的待下載數據時,注冊所述待下載數據對應的下載任務;所述下載任務至少包括:任務名稱、任務類別和任務處理函數;所述任務處理函數至少包括:項目內部調用函數、其他項目調用函數和開源調用函數;

根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

結合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中,所述根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理,包括:

若所述下載任務的項目內部下載任務,調用匹配的項目內部任務處理函數,生成對應的下載報表;

若所述下載任務的其他項目下載任務,調用匹配的其他項目調用函數,生成對應的下載報表;

若所述下載任務的開源下載任務,調用匹配的開源調用函數,生成對應的下載報表。

結合第一方面的第一種可能的實施方式,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,所述方法還包括:

實時監(jiān)測任務處理后的返回值;

若監(jiān)測到所述返回值,根據所述返回值的內容,記錄所述下載任務的處理狀態(tài)和/或所述下載任務對應的下載地址;

在所述下載任務的處理狀態(tài)為下載失敗時,向工作人員發(fā)送提示信息。

結合第一方面,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,所述方法還包括:

判斷所述下載任務的數量是否符合預設數量閾值;

在所述下載任務的數量符合所述預設數量閾值時,根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

結合第一方面,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中,所述方法還包括:

判斷處理中的下載任務是否中斷;

在檢測到處理中的下載任務的中斷時,將所述處理中的下載任務設置為新的下載任務,以便后續(xù)對所述新的下載任務進行任務處理;

判斷所述處理中的下載任務的新任務設置次數是否滿足預設閾值;

當同一個處理中的下載任務的新任務設置次數滿足預設閾值時,記錄所述處理中的下載任務處理中斷。

第二方面,本發(fā)明實施例還提供了一種異步任務處理系統(tǒng),所述系統(tǒng)包括:

注冊模塊,用于在監(jiān)測到生成的待下載數據時,注冊所述待下載數據對應的下載任務;所述下載任務至少包括:任務名稱、任務類別和任務處理函數;所述任務處理函數至少包括:項目內部調用函數、其他項目調用函數和開源調用函數;

第一選擇模塊,用于根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

結合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中,所述第一選擇模塊,包括:

第一調用模塊,用于在所述下載任務為項目內部下載任務時,調用匹配的項目內部任務處理函數,生成對應的下載報表;

第二調用模塊,用于在所述下載任務為其他項目下載任務時,調用匹配的其他項目調用函數,生成對應的下載報表;

第三調用模塊,用于在所述下載任務為開源下載任務時,調用匹配的開源調用函數,生成對應的下載報表。

結合第二方面的第一種可能的實施方式,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,其中,所述系統(tǒng)還包括:

監(jiān)測模塊,用于實時監(jiān)測任務處理后的返回值;

第一記錄模塊,用于在監(jiān)測到所述返回值,根據所述返回值的內容,記錄所述下載任務的處理狀態(tài)和/或所述下載任務對應的下載地址;

提示模塊,用于在所述下載任務的處理狀態(tài)為下載失敗時,向工作人員發(fā)送提示信息。

結合第二方面,本發(fā)明實施例提供了第二方面的第三種可能的實施方式,其中,所述系統(tǒng)還包括:

第一判斷模塊,用于判斷所述下載任務的數量是否符合預設數量閾值;

第二選擇模塊,用于在所述下載任務的數量符合所述預設數量閾值時,根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

結合第二方面,本發(fā)明實施例提供了第二方面的第四種可能的實施方式,其中,所述系統(tǒng)還包括:

第二判斷模塊,用于判斷處理中的下載任務是否中斷;

設置模塊,用于在檢測到處理中的下載任務的中斷時,將所述處理中的下載任務設置為新的下載任務,以便后續(xù)對所述新的下載任務進行任務處理;

第三判斷模塊,用于判斷所述處理中的下載任務的新任務設置次數是否滿足預設閾值;

第二記錄模塊,用于當同一個處理中的下載任務的新任務設置次數滿足預設閾值時,記錄所述處理中的下載任務處理中斷。

本發(fā)明實施例提供的一種異步任務處理方法及系統(tǒng),上述方法包括:當監(jiān)測到生成的待下載數據時,注冊待下載數據對應的下載任務;下載任務至少包括:任務名稱、任務類別和任務處理函數;任務處理函數至少包括:項目內部調用函數、其他項目調用函數和開源調用函數;根據下載任務的任務類別,選擇匹配的任務處理函數對下載任務進行任務處理,與現有技術中的互聯網交易平臺中的固定任務機制在解決下載大型報表的問題時均不理想相比,其能夠帶來以下有益效果:

1、能夠通過直接定義下載任務的方法作為工作函數簡化開發(fā);

2、在上下游項目中,如果需要異步任務支持可以利用其他項目調用函數和開源調用函數的方式實現基礎零成本開發(fā),只要按照上述下載任務的接口填好注冊信息即可添加與上下游項目對應的任務,為工程師節(jié)省了開發(fā)時間,且降低了開發(fā)成本;

3、工程師在開發(fā)下載功能和一些需要異步統(tǒng)計的功能時,有了底層功能的保證可以降低開發(fā)成本,且降低了對工程師的高要求;

4、平臺工作人員待下載的報表可以異步或者提前生成,提高了平臺中業(yè)務人員的工作效率,并且緩解了同時生成和下載報表導致的網頁崩潰的問題。

為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。

附圖說明

為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應被看作是對范圍的限定,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他相關的附圖。

圖1示出了本發(fā)明實施例所提供的一種異步任務處理方法的流程圖;

圖2示出了本發(fā)明實施例所提供的任務列表的示意圖;

圖3示出了本發(fā)明實施例所提供的下載任務的示意圖;

圖4示出了本發(fā)明實施例所提供的根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理的流程圖;

圖5示出了本發(fā)明實施例所提供的另一種異步任務處理方法名稱的流程圖;

圖6示出了本發(fā)明實施例所提供的另一種異步任務處理方法名稱的流程圖;

圖7示出了通過本發(fā)明實施例所提供異步任務處理方法應用的頁面示意圖;

圖8示出了本發(fā)明實施例所提供的一種異步任務處理系統(tǒng)的結構示意圖;

圖9示出了本發(fā)明實施例所提供的另一種異步任務處理系統(tǒng)的結構示意圖。

主要標號說明:

11、注冊模塊;12、第一選擇模塊;13、監(jiān)測模塊;14、第一記錄模塊;15、提示模塊;16、第一判斷模塊;17、第二選擇模塊;18、第二判斷模塊;19、設置模塊;20、第三判斷模塊;21、第二記錄模塊。

具體實施方式

為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領域技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

考慮到目前的互聯網交易平臺的固定任務機制,大部分都是只能在一個平臺的項目內部應用,該平臺的其它項目或者其他開源的脫離項目之外的,想要應用需要程序工程師重新開發(fā),使得投入成本高且耗費時間長,并且重新進行機制的開發(fā)也對程序工程師的經驗和技術提出的較高的要求?;诖?,本發(fā)明實施例提供了一種異步任務處理方法及系統(tǒng),下面通過實施例進行描述。

參考圖1所述的異步任務處理方法的流程圖,本發(fā)明實施例提供了一種異步任務處理方法,所述方法具體包括如下步驟:

S101、當監(jiān)測到生成的待下載數據時,注冊所述待下載數據對應的下載任務;所述下載任務至少包括:任務名稱、任務類別和任務處理函數;所述任務處理函數至少包括:項目內部調用函數、其他項目調用函數和開源調用函數。

本發(fā)明實施例中的上述方法是通過后臺服務器執(zhí)行的;而上述待下載數據可以是互聯網交易平臺和商家的對賬單。本發(fā)明實施例中注冊下載任務的方式通過API(Application Programming Interface,應用程序編程接口),或者,通過thrift協議的接口添加上述下載任務,然后通過mysql(關系型數據庫管理系統(tǒng))將添加的上述下載任務進行存儲。

本發(fā)明實施例中,上述添加的下載任務對應有的信息包括:任務地址(即任務ID,(identification,身份),其對應的字段名為:task_id),任務名稱(其對應的字段名為:task_name),任務分類(其對應的字段名為:task_category)、任務的唯一標識(其代表某個相對唯一的標識,用于區(qū)別多個任務,如對賬單的單號,其對應的字段名為:target);任務調用方式(其中,任務調用方式包括但不限于class,http,thrift,其對應的字段名為:call_category);任務類名(包括本地類,thrift類,http域名,其對應的字段名為:class_name)、與調用方式和任務類別匹配的任務處理方法(包括本地方法,thrift方法,http uri,其對應的字段名為:function_name);任務參數(其對應的字段名為:params);任務對應的生成文件的地址(其對應的字段名為export_file);任務狀態(tài)(其對應的字段名為status);任務中斷后重新執(zhí)行的次數(其對應的字段名為rerun_times);任務創(chuàng)建人(其對應的字段名為creator);任務創(chuàng)建時間(其對應的字段名為create_time);任務第一次開始時間(其對應的字段名為first_start_time);任務最后一次開始時間(其對應的字段名為last_start_time);任務結束時間(其對應的字段名為end_time);任務執(zhí)行任務的子進程ID(其對應的字段名為process_id);

其中,上述任務狀態(tài)包括:新建任務(new)、任務處理中(或者,工作中working)、處理中的任務中斷后重現設置該任務為新建的設置超時3次停止(stopped)、任務處理失敗(failed)、任務處理正常結束(finish)。

然后,通過mysql將添加的上述下載任務的所有信息均進行存儲。其中,參見圖2和圖3,其示出了任務列表和查看任務的示意圖。

另外,本發(fā)明實施例中的后臺服務器中設置有任務管理頁面,用于對上述下述下載任務進行添加、刪除等管理,方便工作人員的操作。

S102、根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

具體的,根據注冊的任務類別,從數據庫中獲取對應的調用方式,然后根據獲取的調用方式調用數據庫中對應的任務調用函數,并根據該任務調用函數對上述下載任務進行處理,在任務處理成功時,生成上述任務對應的下載報表,用以在用戶要下載對應的待下載數據時,可以直接下載生成的上述報表;其中,生成的上述報表即為excel報表。

本發(fā)明實施例提供的一種異步任務處理方法,與現有技術中的互聯網交易平臺中的固定任務機制在解決下載大型報表的問題時均不理想相比,其能夠帶來以下有益效果:1、能夠通過直接定義下載任務的方法作為工作函數簡化開發(fā);2、在上下游項目中,如果需要異步任務支持可以利用其他項目調用函數和開源調用函數的方式實現基礎零成本開發(fā),只要按照上述下載任務的接口填好注冊信息即可添加與上下游項目對應的任務,為工程師節(jié)省了開發(fā)時間,且降低了開發(fā)成本;3、工程師在開發(fā)下載功能和一些需要異步統(tǒng)計的功能時,有了底層功能的保證可以降低開發(fā)成本,且降低了對工程師的高要求;4、平臺工作人員待下載的報表可以異步或者提前生成,提高了平臺中業(yè)務人員的工作效率,并且緩解了同時生成和下載報表導致的網頁崩潰的問題。

進一步的,上述異步任務處理方法中,步驟102,所述根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理,具體包括如下:

若所述下載任務的項目內部下載任務,調用匹配的項目內部任務處理函數,生成對應的下載報表;

若所述下載任務的其他項目下載任務,調用匹配的其他項目調用函數,生成對應的下載報表;

若所述下載任務的開源下載任務,調用匹配的開源調用函數,生成對應的下載報表。

其中,數據庫中存儲的任務包括項目內部下載任務、其他項目下載任務和開源下載任務,其依次對應的調用方式為:class、http和thrift;其對應的任務調用函數依次為:本地方法(即項目內部調用函數),thrift方法(即其他項目調用函數),http uri(即開源調用函數)。

本發(fā)明實施例中,則根據下載任務的任務類別(即屬于項目內部、還是其他項目還是脫離項目之外的開源),然后根據任務類別對應的調用函數對任務進行處理,以生成下載報表。具體的,如果是class就用項目內部的類::的方法去實現生成excel報表的任務;如果是thrift就用調用thrift客戶端調用遠程的類::方法去實現生成excel報表的任務;如果是http就利用curl客戶端去調用遠程的http地址去實現生成excel報表的任務。

進一步的,參考圖4,上述異步任務處理方法中,所述方法還包括:

S201、實時監(jiān)測任務處理后的返回值。

S202、若監(jiān)測到所述返回值,根據所述返回值的內容,記錄所述下載任務的處理狀態(tài)和/或所述下載任務對應的下載地址。

S203、在所述下載任務的處理狀態(tài)為下載失敗時,向工作人員發(fā)送提示信息。

具體的,結合上述步驟201~步驟203,不同種類的函數處理對應的任務之后都有對應的返回值,當返回值為0時,表示任務處理失??;當返回值為1時,表示任務處理成功,當返回值為1攜帶字段(如file)時,字段file表示生成的文件路徑,其對應用戶下載待下載數據的下載路徑;當返回值攜帶為0時,表示任務處理失敗,此時,以郵件、短信或者微信的方式向工作人員發(fā)送提示信息,以告知工作人員任務處理失敗,以便工作人員進行維修。

具體的,即不同種類的回調都要返回一個結構體,如{"result":1,"file":"a/b/file.xsl","errorMsg":""};其中result為1代表執(zhí)行成功;file:代表生成的文件路徑

進一步的,本發(fā)明實施例提供的異步任務處理方法中,在步驟101之后,在步驟102之前,還包括如下步驟:

步驟1、判斷所述下載任務的數量是否符合預設數量閾值;

步驟2、在所述下載任務的數量符合所述預設數量閾值時,根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

結合上述步驟1和步驟2,本發(fā)明實施例中,后臺服務器的服務進程以fork(fork后會從主進程分支出子進程)方式實現多進程,并加以子進程數量控制,本發(fā)明實施例默認上述預設數量閾值為3個,即只開3個子進程,到了3個就等待其它子進程結束了再開新的任務,這樣既可以保證實現服務器的并行處理,也能防止過多的自任務消耗服務器資源。

另外,本發(fā)明實施例中將數據庫劃分為固定的存儲空間,以供子進程進行存儲,而上述子進程之間均的存儲空間做到了不重復利用,用一次釋放一次,已防止子進程之間共享資源的沖突。

進一步的,參考圖5,上述異步任務處理方法還包括:

S301、判斷處理中的下載任務是否中斷。

S302、在檢測到處理中的下載任務的中斷時,將所述處理中的下載任務設置為新的下載任務,以便后續(xù)對所述新的下載任務進行任務處理。

S303、判斷所述處理中的下載任務的新任務設置次數是否滿足預設閾值。

S304、當同一個處理中的下載任務的新任務設置次數滿足預設閾值時,記錄所述處理中的下載任務處理中斷。

結合上述步驟301~步驟304,考慮到對于步驟102中的任務處理過程,可能會由于各種原因出現任務意外中斷的問題,此時,首先判斷處理working中的下載任務是否中斷,若是,則將該下載任務重新設置為new狀態(tài),以便下一次將該任務作為新任務進行任務處理;另外,考慮到設置一次具有片面性,不限定設置次數,會增加服務器的資源消耗且同樣無法解決該任務的中斷問題,對此,本發(fā)明實施例中將上述設置的次數設置上限閾值,如3次,若設置超過為3次,則標記該下載任務處理中斷。

另外,主進程和子進程都注冊了error_handle,出現錯誤會以郵件方式發(fā)送給管理人員,以便管理人員進行查看。

參考圖6,下面以商家和互聯網交易平臺之間的對賬單的財務數據進行說明:

S401、平臺和商家的對賬單,其上包括商家和平臺之間業(yè)務核算的很多明細數據,商家和平臺的業(yè)務專員在審核對賬單時,需從向服務器發(fā)送下載請求,以請求下載上述對賬單的明細數據,并確認上述明細數據是否正確。

S402、后臺服務器在監(jiān)測到生成的對賬單時,其在后臺注冊一個下載任務,并將該下載任務存儲在數據庫中。

本發(fā)明實施例中注冊下載任務的方式通過API(Application Programming Interface,應用程序編程接口),或者,通過thrift協議的接口添加上述下載任務,然后通過mysql將添加的上述下載任務進行存儲。

并且,上述下載任務包括的信息在上述步驟101中已詳細說明,本步驟不再贅述。

S403、后臺服務器的任務伺服腳本監(jiān)聽到新建的下載任務時,進行任務分發(fā)。

S404、判斷所述下載任務是否小于三個;若小于三個,則執(zhí)行對下載任務進行任務處理的步驟405;若大于三個,則返回步驟403繼續(xù)進行任務分發(fā),直至下載任務小于三個,則執(zhí)行對下載任務進行任務處理的步驟405。

S405、后臺服務器的任務伺服腳本根據任務中注冊的方法類別來判斷該下載任務的調用方式,并根據該調用方式調用對應的任務處理方法來處理上述下載任務。

具體的,如果是class就用項目內部的類::方法去實現生成excel報表的任務;如果是thrift就用調用thrift客戶端調用遠程的類::方法去實現生成excel報表的任務;如果是http就利用curl客戶端去調用遠程的http地址去實現生成excel報表的任務。

S406、實時監(jiān)測任務處理后的返回值,若監(jiān)測到所述返回值,根據所述返回值的內容,記錄所述下載任務的處理狀態(tài)和/或所述下載任務對應的下載地址。

具體的,不同種類的函數處理對應的任務之后都有對應的返回值,當返回值為0時,表示任務處理失敗;當返回值為1時,表示任務處理成功,當返回值為1攜帶字段(如file)時,字段file表示生成的文件路徑,其對應用戶下載待下載數據的下載路徑;當返回值攜帶為0時,表示任務處理失敗。

如執(zhí)行任務處理成功時,會返回一個結構體,具體代碼如下:{"result":1,"file":"a/b/file.xsl","errorMsg":""};其中,上述result為1代表執(zhí)行成功;file:代表生成的對賬單的報表路徑。

S407、后臺服務器判斷判斷處理中的下載任務是否中斷;若是,則執(zhí)行步驟408;若否,則執(zhí)行步驟406。

S408、在檢測到處理中的下載任務的中斷時,將所述處理中的下載任務設置為新的下載任務,并繼續(xù)步驟405對對該新的下載任務進行任務處理。

S409、繼續(xù)判斷上述處理中的下載任務的新任務設置次數是否滿足預設閾值;若滿足,則執(zhí)行步驟500;若不滿足,則返回步驟408直至滿足預設閾值,執(zhí)行步驟500。

S500、當判斷同一個處理中的下載任務的新任務設置次數滿足預設閾值時,記錄所述處理中的下載任務處理中斷。

考慮到設置一次具有片面性,不限定設置次數,會增加服務器的資源消耗且同樣無法解決該任務的中斷問題,對此,本發(fā)明實施例中將上述設置的次數設置上限閾值,如3次,若設置超過為3次,則標記該下載任務處理中斷。

參考圖7,在上述下載任務處理完成之后,當業(yè)務人員想下載報表的時候,技術上可以直接通過target查找到是否有完成的下載任務,直接將下載連接顯示在頁面中。

當然業(yè)務人員也可以自己觸發(fā)添加任務,點擊添加到下載任務,他們可以在任務管理中查看到自己已完成的任務,并下載報表。

本發(fā)明實施例提供的一種異步任務處理方法,其結合YII框架開發(fā)了一個異步任務處理功能,能做到異步存儲任務,異步多進程處理,可控制最大進程數量,處理實際任務的程序支持:內部類+方法、http接口、thrift接口三種方式,做到了項目內部調用靈活,上下游項目如果需要異步任務也能很好的支持。

并且,上述異步任務處理方法克服了多進程與Yii默認db(Database,數據庫或者存儲空間)不兼容的問題,Yii所有程序默認用一個DB,導致多個子進程共用一個db會出現mysql gone away現象,針對這點,我們重構了底層模型,通過宏定義來區(qū)分正常和多進程模式,在多進程模式下每次都創(chuàng)建一個新的db,并把該db存儲在一個以子進程id為key的數組中,在程序使用完之后,集中銷毀,或者調用一次銷毀一次。

本發(fā)明實施例提供的一種異步任務處理方法,與現有技術中的互聯網交易平臺中的固定任務機制在解決下載大型報表的問題時均不理想相比,其能夠帶來以下有益效果:1、能夠通過直接定義下載任務的方法作為工作函數簡化開發(fā);2、在上下游項目中,如果需要異步任務支持可以利用其他項目調用函數和開源調用函數的方式實現基礎零成本開發(fā),只要按照上述下載任務的接口填好注冊信息即可添加與上下游項目對應的任務,為工程師節(jié)省了開發(fā)時間,且降低了開發(fā)成本;3、工程師在開發(fā)下載功能和一些需要異步統(tǒng)計的功能時,有了底層功能的保證可以降低開發(fā)成本,且降低了對工程師的高要求;4、平臺工作人員待下載的報表可以異步或者提前生成,提高了平臺中業(yè)務人員的工作效率,并且緩解了同時生成和下載報表導致的網頁崩潰的問題。

本發(fā)明實施例還提供了一種異步任務處理系統(tǒng),參考圖8,所述系統(tǒng)包括:

注冊模塊11,用于在監(jiān)測到生成的待下載數據時,注冊所述待下載數據對應的下載任務;所述下載任務至少包括:任務名稱、任務類別和任務處理函數;所述任務處理函數至少包括:項目內部調用函數、其他項目調用函數和開源調用函數;

第一選擇模塊12,用于根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

進一步的,上述異步任務處理系統(tǒng)中,所述第一選擇模塊12,包括:

第一調用模塊,用于在所述下載任務為項目內部下載任務時,調用匹配的項目內部任務處理函數,生成對應的下載報表;

第二調用模塊,用于在所述下載任務為其他項目下載任務時,調用匹配的其他項目調用函數,生成對應的下載報表;

第三調用模塊,用于在所述下載任務為開源下載任務時,調用匹配的開源調用函數,生成對應的下載報表。

進一步的,參考圖8,上述異步任務處理系統(tǒng)還包括:

監(jiān)測模塊13,用于實時監(jiān)測任務處理后的返回值;

第一記錄模塊14,用于在監(jiān)測到所述返回值,根據所述返回值的內容,記錄所述下載任務的處理狀態(tài)和/或所述下載任務對應的下載地址;

提示模塊15,用于在所述下載任務的處理狀態(tài)為下載失敗時,向工作人員發(fā)送提示信息。

進一步的,參考圖9,上述異步任務處理系統(tǒng)還包括:

第一判斷模塊16,用于判斷所述下載任務的數量是否符合預設數量閾值;

第二選擇模塊17,用于在所述下載任務的數量符合所述預設數量閾值時,根據所述下載任務的任務類別,選擇匹配的任務處理函數對所述下載任務進行任務處理。

進一步的,參考圖8,上述異步任務處理系統(tǒng)還包括:

第二判斷模塊18,用于判斷處理中的下載任務是否中斷;

設置模塊19,用于在檢測到處理中的下載任務的中斷時,將所述處理中的下載任務設置為新的下載任務,以便后續(xù)對所述新的下載任務進行任務處理;

第三判斷模塊20,用于判斷所述處理中的下載任務的新任務設置次數是否滿足預設閾值;

第二記錄模塊21,用于當同一個處理中的下載任務的新任務設置次數滿足預設閾值時,記錄所述處理中的下載任務處理中斷。

本發(fā)明實施例提供的一種異步任務處理系統(tǒng),與現有技術中的互聯網交易平臺中的固定任務機制在解決下載大型報表的問題時均不理想相比,其能夠帶來以下有益效果:1、能夠通過直接定義下載任務的方法作為工作函數簡化開發(fā);2、在上下游項目中,如果需要異步任務支持可以利用其他項目調用函數和開源調用函數的方式實現基礎零成本開發(fā),只要按照上述下載任務的接口填好注冊信息即可添加與上下游項目對應的任務,為工程師節(jié)省了開發(fā)時間,且降低了開發(fā)成本;3、工程師在開發(fā)下載功能和一些需要異步統(tǒng)計的功能時,有了底層功能的保證可以降低開發(fā)成本,且降低了對工程師的高要求;4、平臺工作人員待下載的報表可以異步或者提前生成,提高了平臺中業(yè)務人員的工作效率,并且緩解了同時生成和下載報表導致的網頁崩潰的問題。

本發(fā)明實施例所提供的異步任務處理系統(tǒng)可以為設備上的特定硬件或者安裝于設備上的軟件或固件等。本發(fā)明實施例所提供的系統(tǒng),其實現原理及產生的技術效果和前述方法實施例相同,為簡要描述,系統(tǒng)實施例部分未提及之處,可參考前述方法實施例中相應內容。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,前述描述的系統(tǒng)、模塊和單元的具體工作過程,均可以參考上述方法實施例中的對應過程,在此不再贅述。

在本發(fā)明所提供的實施例中,應該理解到,所揭露系統(tǒng)和方法,可以通過其它的方式實現。以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,又例如,多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,系統(tǒng)或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。

另外,在本發(fā)明提供的實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。

所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。

應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋,此外,術語“第一”、“第二”、“第三”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。

最后應說明的是:以上所述實施例,僅為本發(fā)明的具體實施方式,用以說明本發(fā)明的技術方案,而非對其限制,本發(fā)明的保護范圍并不局限于此,盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,其依然可以對前述實施例所記載的技術方案進行修改或可輕易想到變化,或者對其中部分技術特征進行等同替換;而這些修改、變化或者替換,并不使相應技術方案的本質脫離本發(fā)明實施例技術方案的精神和范圍。都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1