本發明涉及數據處理領域,尤其涉及一種任務分配方法及裝置。
背景技術:
任務分配是數據處理領域中的重要領域,合理的任務分配可以實現資源的優化配置,提升系統的整體效率。
但是,現有的任務分配方法的資源配置效率有待提升。
技術實現要素:
本發明解決的技術問題是提升任務分配方法的資源配置效率。
為解決上述技術問題,本發明實施例提供一種任務分配方法,包括:接收來自客戶端的分配請求,所述分配請求包含用于標識所述客戶端的來源標識;對所述來源標識進行驗證,確定所述來源標識滿足預設條件,所述預設條件包括:第一隊列中未包含所述分配請求的來源標識;更新第一隊列,將所述分配請求的來源標識添加至所述第一隊列的尾部;按照先進先出的順序,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務,所述待處理任務存儲于第二隊列中。
可選的,所述第二隊列中存儲有多個待處理任務,所述任務分配方法還包括:在所述分配待處理任務之后,將已分配的所述待處理任務從所述第二隊列中移除。
可選的,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務包括:對位于所述第二隊列首位的待處理任務和/或位于第一隊列首位的來源標識進行鎖定,直至分配完畢。
可選的,所述預設條件還包括:分配至所述來源標識指向的客戶端的待處理任務的數量未超過上限。
可選的,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任 務后,所述任務分配方法還包括:將所指向的客戶端已分配到所述待處理任務的來源標識從所述第一隊列中移除。
可選的,所述第二隊列為先進先出隊列。
本發明實施例中還提供一種任務分配裝置,其特征在于,包括:分配請求接收單元,適于接收來自客戶端的分配請求,所述分配請求包含所述用于標識客戶端的來源標識;驗證單元,適于對所述來源標識進行驗證,確定所述來源標識滿足預設條件,所述預設條件包括:第一隊列中未包含所述分配請求的來源標識;更新單元,適于更新第一隊列,將所述分配請求的來源標識添加至所述第一隊列的尾部;分配單元,適于按照先進先出的順序,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務,所述待處理任務存儲于第二隊列中。
可選的,所述第二隊列中存儲有多個待處理任務,所述任務分配裝置還包括:第一移除單元,適于在所述分配待處理任務之后,將已分配的所述待處理任務從所述第二隊列中移除。
可選的,所述分配單元包括鎖定單元,適于對位于所述第二隊列首位的待處理任務和/或位于第一隊列首位的來源標識進行鎖定,直至分配完畢。
可選的,所述預設條件還包括:分配至所述來源標識指向的客戶端的待處理任務的數量未超過上限。
可選的,所述任務分配裝置還包括:第二移除單元,適于所述第一隊列中的所述來源標識指向的客戶端分配待處理任務后,將所指向的客戶端已分配到所述待處理任務的來源標識從所述第一隊列中移除。
可選的,所述第二隊列為先進先出隊列。
與現有技術相比,本發明實施例的技術方案具有以下有益效果:
通過對來源標識進行驗證,確定來源標識滿足預設條件后,才將分配請求添加至第一隊列的尾部,按照先進先出的順序,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務。當第一隊列中已包含分配請求指向的用戶端的來源標識時,若將該來源標識添加至第一隊列,會對該標識對應 的客戶端進行任務的重復分配,而本發明實施例中的預設條件包括分配請求的來源標識未包含于第一隊列中,在確定來源標識滿足預設條件后,才將分配請求的來源標識添加至第一隊列的尾部以進行后續的任務分配,由此,可以使得任務分配更加合理,避免同一客戶端在任務分配過程中反復搶奪任務,從而可以優化客戶端的資源配置。
附圖說明
圖1是本發明實施例中一種任務分配方法的流程圖;
圖2是本發明實施例中一種任務分配裝置的結構示意圖。
具體實施方式
如前所述,任務分配是數據處理領域中的重要領域,合理的任務分配可以實現資源的優化配置,提升系統的整體效率。但是,現有的任務分配方法的資源配置效率有待提升。
本發明實施例通過對來源標識進行驗證,確定來源標識滿足預設條件后,才將分配請求添加至第一隊列的尾部,按照先進先出的順序,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務。當第一隊列中已包含分配請求指向的用戶端的來源標識時,若將該來源標識來源添加至第一隊列,會對該標識對應的客戶端進行任務的重復分配,而本發明實施例中的預設條件包括分配請求的來源標識未包含于第一隊列中,在確定來源標識滿足預設條件后,才將分配請求的來源標識添加至第一隊列的尾部以進行后續的任務分配,由此,可以使得任務分配更加合理,避免同一客戶端在任務分配過程中反復搶奪任務,從而可以優化客戶端的資源配置。
為使本發明的上述目的、特征和有益效果能夠更為明顯易懂,下面結合附圖對本發明的具體實施例做詳細的說明。
圖1是本發明實施例中一種任務分配方法的流程圖。
在步驟s11中,接收來自客戶端的分配請求,所述分配請求包含用于標識所述客戶端的來源標識。
客戶端的分配請求可以是用戶在客戶端操作后生成;客戶端的來源標識 對客戶端起標識作用,例如可以是客戶端對應用戶的身份標識。
在步驟s12中,對所述來源標識進行驗證,確定所述來源標識滿足預設條件,所述預設條件包括:第一隊列中未包含所述分配請求的來源標識。
第一隊列中存儲有待進行任務分配的來源標識,系統會按照先進先出的順序為排在第一隊列中的來源標識分配待處理任務。
由于對任務的處理需要客戶端的資源,在所述第一隊列中已包含分配請求的來源標識時,若再次將該分配請求的來源標識加入所述第一隊列,并為該來源標識指向的客戶端分配待處理任務,會使得該來源標識對應的客戶端分配到更多的待處理任務,造成超出其處理能力的超負荷狀態,而其他客戶端不能合理的分配到待處理任務而資源空置,不利于各個客戶端的資源優化配置。
由于所述預設條件包括所述第一隊列中未包含所述分配請求的來源標識,僅在所述第一隊列中未包含所述分配請求的來源標識時,才將所述分配請求的來源標識添加至所述第一隊列的尾部,可以對各個客戶端更合理的進行任務分配,優化各個客戶端之間的資源配置。
在具體實施中,所述預設條件還可以包括:分配至所述來源標識指向的客戶端的待處理任務的數量未超過上限。
每個客戶端對待處理任務的處理能力受制于其資源限制,考慮到各個客戶端之間的資源優化配置,可以設置客戶端分配到的待處理任務的數量上限。每個客戶端的待處理任務的數量上限可以是相同的,也可以是不同的,該上限可以根據每個客戶端情況進行設置。
通過設置每個客戶端分配到的待處理任務的上限,在服務器接收到來自客戶端的分配請求時,對該客戶端的待處理任務的數量進行判斷,只有當其待處理任務的數量未超過上限時,才將其對應的來源標識添加至第一隊列的尾部,從而可以均衡在各個客戶端之間的任務分配,實現各個客戶端之間的資源優化配置。
在步驟s13中,更新第一隊列,將所述分配請求的來源標識添加至所述第一隊列的尾部。
可以理解的是,對第一隊列的更新可以包括當第一隊列為空隊列時,將所述分配請求的來源標識添加至所述第一隊列。
在步驟s14中,按照先進先出的順序,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務,所述待處理任務存儲于第二隊列中。
通過按照先進先出的順序為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務,可以公平的為第一隊列中的來源標識指向的客戶端分配任務,避免第一隊列中的某個來源標識一直搶占隊列,進而實現客戶端之間的資源優化配置。
在具體實施中,所述第二隊列可以是先進先出隊列。位于第二隊列中的待處理任務可以是各種不同類型的待處理任務,例如可以是交易數據處理任務。第二隊列中的任務可以是根據申報建立的,例如申報客戶端通過申報的方式將交易數據處理任務添加至第二隊列中,以供分配。
在一具體實施中,所述第二隊列中存儲有多個待處理任務,所述任務分配方法還可以包括:在所述分配待處理任務之后,將已分配的所述待處理任務從所述第二隊列中移除。
在另一具體實施中,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務后,所述任務分配方法還還可以包括:將所指向的客戶端已分配到所述待處理任務的來源標識從所述第一隊列中移除。
在具體實施中,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務可以包括:對位于所述第二隊列首位的待處理任務和/或位于第一隊列首位的來源標識進行鎖定,直至分配完畢。
由于利用先進先出的方式對第一隊列中的所述來源標識指向的客戶端分配待處理任務,故對位于第一隊列首位的來源標識進行鎖定,只允許位于第一隊列首位的來源標識接收一個任務分配,可以避免出現對一個來源標識對應的客戶端多次分配待處理任務,實現各個客戶端之間的資源優化配置。
同樣地,對位于所述第二隊列首位的待處理任務進行鎖定,使其只能被分配至一個來源標識對應的客戶端,可以避免單個待處理任務多次分配的問題。
對第一隊列和/或第二隊列的鎖定可以利用key/value數據庫redis實現。
在本發明一實施例中,任務分配方法還可以包括:在為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務后,通知所述來源標識指向的客戶端,以使得該客戶端獲知自己已經被分配待處理任務,從而可以及時進行處理。
通過對來源標識進行驗證,確定來源標識滿足預設條件后,才將分配請求添加至第一隊列的尾部,按照先進先出的順序,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務。由于預設條件包括在第一隊列中未包含分配請求的來源標識,當第一隊列中已包含分配請求指向的用戶端的來源標識時,若將該標識來源添加至第一隊列,會對該標識對應的客戶端進行任務的重復分配,故確定來源標識滿足預設條件后,才將分配請求添加至第一隊列的尾部,可以使得任務分配更加合理,優化客戶端的資源配置。
本發明實施例還提供一種任務分配裝置,其結構示意圖參見圖2。
任務分配裝置包括:分配請求接收單元21,適于接收來自客戶端的分配請求,所述分配請求包含用于標識所述客戶端的來源標識;
驗證單元22,適于對所述來源標識進行驗證,確定所述來源標識滿足預設條件,所述預設條件包括:第一隊列中未包含所述分配請求的來源標識;
更新單元23,適于更新第一隊列,將所述分配請求的來源標識添加至所述第一隊列的尾部;
分配單元24,適于按照先進先出的順序,為所述第一隊列中的所述來源標識指向的客戶端分配待處理任務,所述待處理任務存儲于第二隊列中。
在具體實施中,所述第二隊列中可以存儲有多個待處理任務,所述任務分配裝置還可以包括:第一移除單元,適于在所述分配待處理任務之后,將已分配的所述待處理任務從所述第二隊列中移除。
在具體實施中,所述分配單元24可以包括鎖定單元,適于對位于所述第二隊列首位的待處理任務和/或位于第一隊列首位的來源標識進行鎖定,直至分配完畢。
在具體實施中,所述預設條件還可以包括:分配至所述來源標識指向的客戶端的待處理任務的數量未超過上限。
在具體實施中,任務分配裝置還可以包括:第二移除單元,適于所述第一隊列中的所述來源標識指向的客戶端分配待處理任務后,將所指向的客戶端已分配到所述待處理任務的來源標識從所述第一隊列中移除。
在具體實施中,所述第二隊列可以為先進先出隊列。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:rom、ram、磁盤或光盤等。
雖然本發明披露如上,但本發明并非限定于此。任何本領域技術人員,在不脫離本發明的精神和范圍內,均可作各種更動與修改,因此本發明的保護范圍應當以權利要求所限定的范圍為準。