国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種消息轉(zhuǎn)發(fā)方法及設備的制造方法

      文檔序號:10572723閱讀:202來源:國知局
      一種消息轉(zhuǎn)發(fā)方法及設備的制造方法
      【專利摘要】本發(fā)明實施例涉及信息處理技術領域,尤其涉及一種消息轉(zhuǎn)發(fā)方法及設備,用以避免由于一個接收端出現(xiàn)故障而使待轉(zhuǎn)發(fā)消息隊列中的其它接收端的消息出現(xiàn)延遲發(fā)送的情況。在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      【專利說明】
      一種消息轉(zhuǎn)發(fā)方法及設備
      技術領域
      [0001]本發(fā)明實施例涉及信息處理技術領域,尤其涉及一種消息轉(zhuǎn)發(fā)方法及設備。
      【背景技術】
      [0002]隨著互聯(lián)網(wǎng)技術的發(fā)展,在線支付和空中開卡等聯(lián)機業(yè)務的使用場景越來越廣泛,在一個聯(lián)機業(yè)務中,通常需要一個跨接多個成員機構(gòu)的聯(lián)機平臺,如果所跨接的成員機構(gòu)相互之間的請求均采用同步應答方式,則對該聯(lián)機平臺的性能要求較高。為了降低對聯(lián)機平臺性能的要求,對于各個成員機構(gòu)之間發(fā)送的實時性要求不高、且丟包后不阻礙后續(xù)交易的消息采用存儲轉(zhuǎn)發(fā)的方式完成。
      [0003]圖1示例性示出了現(xiàn)有技術中一種存儲轉(zhuǎn)發(fā)的方法適用的系統(tǒng)架構(gòu)示意圖,如圖1所示,包括數(shù)據(jù)庫101、轉(zhuǎn)發(fā)設備102,以及至少一個接收端103。數(shù)據(jù)庫101中存儲需要向接收端103發(fā)送的消息,轉(zhuǎn)發(fā)設備102從數(shù)據(jù)庫101中讀取需要轉(zhuǎn)發(fā)的消息,并轉(zhuǎn)發(fā)給至少一個接收端103。
      [0004]在具體實施中,比如,在銀聯(lián)搭建的可信服務管理系統(tǒng)(TrustedServiceManagement,簡稱TSM)中,對于空中開卡后的各聯(lián)機平臺之間,銀行卡狀態(tài)的同步請求,SP采用了存儲轉(zhuǎn)發(fā)的機制,即將銀行卡的狀態(tài)的同步請求存儲至數(shù)據(jù)庫中,由轉(zhuǎn)發(fā)設備在適當?shù)臅r機將該銀行卡的狀態(tài)的同步請求轉(zhuǎn)發(fā)給各個聯(lián)機平臺。如此,既減少用戶前端請求的等待時間,又極大的減少TSM系統(tǒng)的負載壓力。
      [0005]現(xiàn)有的消息的存儲轉(zhuǎn)發(fā)機制為,轉(zhuǎn)發(fā)設備102從數(shù)據(jù)庫101中獲取消息隊列,轉(zhuǎn)發(fā)設備102根據(jù)消息隊列中各個消息的順序,向接收端發(fā)送消息隊列中的消息。在該過程中轉(zhuǎn)發(fā)設備通過預先建立的線程向消息對應的接收端發(fā)送消息,在接收端返回的響應之后,可在該預先建立的線程上接著發(fā)其它消息,若某個接收端響應不及時或發(fā)生故障時,則該線程就會被長時間占用,從而導致消息隊列中的后續(xù)消息發(fā)送不及時。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明實施例提供一種消息轉(zhuǎn)發(fā)方法及設備,用以根據(jù)接收端的狀態(tài)靈活的發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,避免由于一個接收端出現(xiàn)故障而使待轉(zhuǎn)發(fā)消息隊列中的其它接收端的消息出現(xiàn)延遲發(fā)送的情況。
      [0007]本發(fā)明實施例提供一種消息轉(zhuǎn)發(fā)方法,包括:
      [0008]在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0009]確定接收端在第一時長內(nèi)的至少一個消息的響應時長;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到接收端反饋的消息對應的響應之間的時長;
      [0010]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;
      [0011]若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;
      [0012]若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0013]可選地,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括:
      [0014]若確定接收端在上一個等級判定周期的等級不大于第一等級閾值,則調(diào)整接收端的等級,以使調(diào)整后的接收端的等級大于第一等級閾值,并根據(jù)調(diào)整后的接收端的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0015]若確定接收端在上一個等級判定周期的等級大于第一等級閾值時,根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0016]可選地,根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,具體包括:
      [0017]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端中在第一時長內(nèi)的至少一個消息的響應時長的平均值;
      [0018]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值;
      [0019]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值不大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值的等級,且根據(jù)述接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值,確定接收端在當前等級判定周期內(nèi)的等級;
      [0020]其中,接收端的響應時長的平均值越短,所對應的接收端的等級越高。
      [0021]可選地,根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,具體包括:
      [0022]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;
      [0023]根據(jù)確定的接收端在當前等級判定周期內(nèi)的等級,為接收端分配接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量;
      [0024]其中,接收端在當前等級判定周期的等級越高,為接收端分配的在當前等級判定周期內(nèi)的等級對應的線程數(shù)量越少。
      [0025]可選地,根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,具體包括:
      [0026]針對接收端所在的系統(tǒng)所包括的多個接收端中的每個接收端,根據(jù)獲取的每個接收端在第一時長內(nèi)的至少一個消息的響應時長,確定每個接收端在當前等級判定周期內(nèi)的等級;
      [0027]根據(jù)多個接收端中每個接收端的等級,對系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量;其中,預設的范圍的兩個節(jié)點為預設范圍的最小值和預設范圍的最大值;
      [0028]根據(jù)系統(tǒng)的總的線程數(shù)量,為每個等級的接收端分配每個等級對應的線程數(shù)量。
      [0029]可選地,根據(jù)多個接收端中每個接收端的等級,對系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量,具體包括:
      [0030]根據(jù)多個接收端中每個接收端的等級,通過以下公式計算備選總的線程數(shù)量:
      [0031]備選總的線程數(shù)量=預設范圍的最小值+預設范圍的最大值X[(多個接收端中的等級大于第一等級閾值,且小于第二等級閾值的所有接收端的數(shù)量多個接收端的總數(shù)量];
      [0032]其中,第二等級閾值高于第一等級閾值;
      [0033]若確定備選總的線程數(shù)量大于預設范圍的最大值,則將預設范圍的最大值確定為總的線程數(shù)量;
      [0034]若確定備選總的線程數(shù)量小于預設范圍的最小值,則將預設范圍的最小值確定為總的線程數(shù)量;
      [0035]若確定備選總的線程數(shù)量不大于預設范圍的最大值,且不小于預設范圍的最小值,則將備選總的線程數(shù)量確定為總的線程數(shù)量。
      [0036]可選地,根據(jù)系統(tǒng)的總的線程數(shù)量,為每個等級的接收端分配每個等級對應的線程數(shù)量,具體包括:
      [0037]針對每個等級,根據(jù)系統(tǒng)的總的線程數(shù)量,根據(jù)以下公式為該等級的接收端分配該等級對應的備選線程數(shù)量:
      [0038]該等級對應的備選線程數(shù)量=總的線程數(shù)量X(在多個接收端中該等級對應的所有接收端的數(shù)量+多個接收端的總的數(shù)量);
      [0039]將該等級對應的備選線程數(shù)量確定為該等級對應的線程數(shù)量;或者根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量。
      [0040]可選地,根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量,具體包括:
      [0041 ]對每個等級對應的備選線程數(shù)量進行調(diào)整,將調(diào)整后的每個等級的備選線程數(shù)量確定為每個等級的線程數(shù)量;
      [0042]其中,針對每個等級,調(diào)整后的每個等級的備選線程數(shù)量滿足以下條件:
      [0043]等級越高,調(diào)整后的該等級的備選線程數(shù)量越少;
      [0044]所有等級中的每個等級對應的線程數(shù)量的總和,等于所有等級中每個等級對應的調(diào)整后的備選線程數(shù)量的總和。
      [0045]可選地,在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括:
      [0046]在第一時長后,根據(jù)接收端在當前等級判定周期內(nèi)的等級,通過為接收端分配的接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量對應的線程,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0047]可選地,在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括:
      [0048]在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0049]在確定第二時長內(nèi)未接收到接收端反饋的消息對應的響應時,重發(fā)K次待發(fā)送消息;其中,K不大于預設重發(fā)次數(shù)閾值;其中,K越大,第K次重發(fā)與第(K-1)次重發(fā)之間的時間間隔越大;
      [0050]在確定接收到接收端反饋的消息對應的響應時,確定消息發(fā)送成功,在確定K等于預設重發(fā)次數(shù)閾值時,確定消息發(fā)送失敗。
      [0051 ] 可選地,還包括:
      [0052]在確定當前時刻達到當前消息隊列獲取周期時,從數(shù)據(jù)庫中獲取初始消息隊列;其中,消息隊列獲取周期大于等級判定周期;
      [0053]確定出在當前時刻對應的等級判定周期內(nèi),等級不大于第一等級閾值的接收端;
      [0054]將確定出的等級不大于第一等級閾值的接收端對應的消息,從初始消息隊列中移出;
      [0055]將進行移出操作之后所得到的初始消息隊列,確定為新的待轉(zhuǎn)發(fā)消息隊列。
      [0056]可選地,接收端在上一個等級判定周期內(nèi)的等級越高,則接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長越短。
      [0057]可選地,接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時亥Ij之間的時長=LX 21;
      [0058]其中丄為接收端在上一個等級判定周期內(nèi)的等級。
      [0059]本發(fā)明實施例提供一種消息轉(zhuǎn)發(fā)設備,包括:
      [0060]第一發(fā)送單元,用于在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0061 ]確定單元,用于確定接收端在第一時長內(nèi)的至少一個消息的響應時長;根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到接收端反饋的消息對應的響應之間的時長;
      [0062]第二發(fā)送單元,用于若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;
      [0063]若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0064]可選地,第一發(fā)送單元,具體用于:
      [0065]若確定接收端在上一個等級判定周期的等級不大于第一等級閾值,則調(diào)整接收端的等級,以使調(diào)整后的接收端的等級大于第一等級閾值,并根據(jù)調(diào)整后的接收端的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0066]若確定接收端在上一個等級判定周期的等級大于第一等級閾值時,根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0067]可選地,確定單元,具體用于:
      [0068]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端中在第一時長內(nèi)的至少一個消息的響應時長的平均值;
      [0069]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值;
      [0070]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值不大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值的等級,且根據(jù)述接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值,確定接收端在當前等級判定周期內(nèi)的等級;
      [0071]其中,接收端的響應時長的平均值越短,所對應的接收端的等級越高。
      [0072]可選地,確定單元,具體用于:
      [0073]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;
      [0074]根據(jù)確定的接收端在當前等級判定周期內(nèi)的等級,為接收端分配接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量;
      [0075]其中,接收端在當前等級判定周期的等級越高,為接收端分配的在當前等級判定周期內(nèi)的等級對應的線程數(shù)量越少。
      [0076]可選地,確定單元,具體用于:
      [0077]針對接收端所在的系統(tǒng)所包括的多個接收端中的每個接收端,根據(jù)獲取的每個接收端在第一時長內(nèi)的至少一個消息的響應時長,確定每個接收端在當前等級判定周期內(nèi)的等級;
      [0078]根據(jù)多個接收端中每個接收端的等級,對系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量;其中,預設的范圍的兩個節(jié)點為預設范圍的最小值和預設范圍的最大值;
      [0079]根據(jù)系統(tǒng)的總的線程數(shù)量,為每個等級的接收端分配每個等級對應的線程數(shù)量。
      [0080]可選地,確定單元,具體用于:
      [0081]根據(jù)多個接收端中每個接收端的等級,通過以下公式計算備選總的線程數(shù)量:
      [0082]備選總的線程數(shù)量=預設范圍的最小值+預設范圍的最大值X[(多個接收端中的等級大于第一等級閾值,且小于第二等級閾值的所有接收端的數(shù)量多個接收端的總數(shù)量];
      [0083]其中,第二等級閾值高于第一等級閾值;
      [0084]若確定備選總的線程數(shù)量大于預設范圍的最大值,則將預設范圍的最大值確定為總的線程數(shù)量;
      [0085]若確定備選總的線程數(shù)量小于預設范圍的最小值,則將預設范圍的最小值確定為總的線程數(shù)量;
      [0086]若確定備選總的線程數(shù)量不大于預設范圍的最大值,且不小于預設范圍的最小值,則將備選總的線程數(shù)量確定為總的線程數(shù)量。
      [0087]可選地,確定單元,具體用于:
      [0088]針對每個等級,根據(jù)系統(tǒng)的總的線程數(shù)量,根據(jù)以下公式為該等級的接收端分配該等級對應的備選線程數(shù)量:
      [0089]該等級對應的備選線程數(shù)量=總的線程數(shù)量X(在多個接收端中該等級對應的所有接收端的數(shù)量+多個接收端的總的數(shù)量);
      [0090]將該等級對應的備選線程數(shù)量確定為該等級對應的線程數(shù)量;或者根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量。
      [0091]可選地,確定單元,具體用于:
      [0092]對每個等級對應的備選線程數(shù)量進行調(diào)整,將調(diào)整后的每個等級的備選線程數(shù)量確定為每個等級的線程數(shù)量;
      [0093]其中,針對每個等級,調(diào)整后的每個等級的備選線程數(shù)量滿足以下條件:
      [0094]等級越高,調(diào)整后的該等級的備選線程數(shù)量越少;
      [0095]所有等級中的每個等級對應的線程數(shù)量的總和,等于所有等級中每個等級對應的調(diào)整后的備選線程數(shù)量的總和。
      [0096]可選地,第二發(fā)送單元,具體用于:
      [0097]在第一時長后,根據(jù)接收端在當前等級判定周期內(nèi)的等級,通過為接收端分配的接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量對應的線程,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0098]可選地,第二發(fā)送單元,具體用于:
      [0099]在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0100]在確定第二時長內(nèi)未接收到接收端反饋的消息對應的響應時,重發(fā)K次待發(fā)送消息;其中,K不大于預設重發(fā)次數(shù)閾值;其中,K越大,第K次重發(fā)與第(K-1)次重發(fā)之間的時間間隔越大;
      [0101]在確定接收到接收端反饋的消息對應的響應時,確定消息發(fā)送成功,在確定K等于預設重發(fā)次數(shù)閾值時,確定消息發(fā)送失敗。
      [0102]可選地,還包括獲取單元,用于:
      [0103]在確定當前時刻達到當前消息隊列獲取周期時,從數(shù)據(jù)庫中獲取初始消息隊列;其中,消息隊列獲取周期大于等級判定周期;
      [0104]確定出在當前時刻對應的等級判定周期內(nèi),等級不大于第一等級閾值的接收端;
      [0105]將確定出的等級不大于第一等級閾值的接收端對應的消息,從初始消息隊列中移出;
      [0106]將進行移出操作之后所得到的初始消息隊列,確定為新的待轉(zhuǎn)發(fā)消息隊列。
      [0107]可選地,接收端在上一個等級判定周期內(nèi)的等級越高,則接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長越短。
      [0108]可選地,接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時亥Ij之間的時長=LX 21;
      [0109]其中,L為接收端在上一個等級判定周期內(nèi)的等級。
      [0110]本發(fā)明實施例中,在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;確定接收端在第一時長內(nèi)的至少一個消息的響應時長;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到接收端反饋的消息對應的響應之間的時長;根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。由于根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,因此,接收端在當前等級判定周期內(nèi)的等級可表示接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,進而可根據(jù)接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,確定是否發(fā)送針對接收端的消息,從而實現(xiàn)了根據(jù)接收端自身的狀態(tài)靈活的發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息的目的;進一步由于若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送,因此,當接收端由于故障或其它原因?qū)е陆邮障⒓胺祷仨憫乃俣容^慢時,可暫時不發(fā)送針對該接收端的消息,而先發(fā)送其它接收消息及返回響應的速度正常的接收端對應的消息,如此,則避免了由于發(fā)送該接收消息及返回響應的速度較慢的接收端對應的消息導致的長時間占用線程,延遲待轉(zhuǎn)發(fā)消息隊列中的其它消息發(fā)送時間的情況。
      【附圖說明】
      [0111]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0112]圖1為現(xiàn)有技術中一種存儲轉(zhuǎn)發(fā)的方法適用的系統(tǒng)架構(gòu)示意圖;
      [0113]圖2為本發(fā)明實施例適用的一種消息轉(zhuǎn)發(fā)方法適用的系統(tǒng)架構(gòu)示意圖;
      [0114]圖3為本發(fā)明實施例提供的一種消息轉(zhuǎn)發(fā)方法流程示意圖;
      [0115]圖4為本發(fā)明實施例提供的一種消息轉(zhuǎn)發(fā)設備的結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0116]為了使本發(fā)明的目的、技術方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0117]圖2示例性示出了本發(fā)明實施例適用的一種消息轉(zhuǎn)發(fā)方法適用的系統(tǒng)架構(gòu)示意圖,如圖2所示,包括數(shù)據(jù)庫201、消息轉(zhuǎn)發(fā)設備202,以及至少一個接收端203。數(shù)據(jù)庫201中存儲需要向接收端203發(fā)送的消息,消息轉(zhuǎn)發(fā)設備202周期性從數(shù)據(jù)庫201中獲取初始消息隊列,并根據(jù)本發(fā)明實施例提供的消息轉(zhuǎn)發(fā)方法,轉(zhuǎn)發(fā)給至少一個接收端203。
      [0118]本發(fā)明實施例中,消息轉(zhuǎn)發(fā)設備202以第二時長為周期,周期性的從數(shù)據(jù)庫獲取待轉(zhuǎn)發(fā)消息隊列。消息轉(zhuǎn)發(fā)設備202以第三時長為周期,周期性的對接收端的等級進行判定。第二時長和第三時長之間無必然聯(lián)系,可選地,第二時長大于第三時長。
      [0119]進一步,優(yōu)選地,消息轉(zhuǎn)發(fā)設備202為每個等級的接收端進行等級判定的周期都不同,比如,以第四時長為周期,周期性判定等級為2級的接收端的等級,以第五時長為周期,周期性判定等級為3級的接收端的等級。第四時長與第五時長無必然聯(lián)系,可選地,等級越高,等級判定周期的時長越短,即等級2級高于等級3級,此時第四時長短于第五時長。進一步,第四時長和第五時長,與第二時長之間無必然聯(lián)系,僅僅是不同的實施方式。
      [0120]本發(fā)明實施例中,其它一些服務器按照時間順序向數(shù)據(jù)庫201中放入待轉(zhuǎn)發(fā)的消息,消息轉(zhuǎn)發(fā)設備202從數(shù)據(jù)庫201中取出待轉(zhuǎn)發(fā)消息隊列,之后向各個接收端發(fā)送消息,具體來說,每條消息中均包括目標接收端的標識,比如一條消息是需要發(fā)送給接收端I的,此時該消息中目標接收端的標識即為接收端I的標識,此時消息轉(zhuǎn)發(fā)設備202在輪到發(fā)送該條消息時,將該條消息發(fā)送給接收端I。又或者,該條消息是發(fā)給接收端2和接收端3的,此時該消息中目標接收端的標識即為接收端2和接收端3的標識,此時消息轉(zhuǎn)發(fā)設備202在輪到發(fā)送該條消息時,將該條消息發(fā)送兩次,一次發(fā)送給接收端2,另一次發(fā)送給接收端3,如果該過程中,經(jīng)判斷接收端3的等級不大于第一等級閾值,則需要暫停向接收端3發(fā)送消息,則僅將該條消息發(fā)送給接收端2—次,并進行標記,同時留存該條消息,并標記還需向接收端3發(fā)送,等到無需暫停向接收端3發(fā)送消息時,在輪到發(fā)送該條消息時,向接收端發(fā)送該條消息。[0121 ]圖3示例性示出了本發(fā)明實施例提供的一種消息轉(zhuǎn)發(fā)方法的方法流程示意圖。
      [0122]基于圖2所示的系統(tǒng)架構(gòu),如圖3所示,本發(fā)明實施例提供的一種消息轉(zhuǎn)發(fā)方法,可由本發(fā)明實施例例中的消息轉(zhuǎn)發(fā)設備執(zhí)行,包括:
      [0123]步驟301,消息轉(zhuǎn)發(fā)設備在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0124]步驟302,消息轉(zhuǎn)發(fā)設備確定接收端在第一時長內(nèi)的至少一個消息的響應時長;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到接收端反饋的消息對應的響應之間的時長;
      [0125]步驟303,消息轉(zhuǎn)發(fā)設備根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;
      [0126]步驟304,若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0127]舉例來說,在8點整向接收端I發(fā)送消息,接收端I接收到該消息,并返回消息設備該消息的響應,消息轉(zhuǎn)發(fā)設備在8點O分2秒接收到接收端I發(fā)送的該消息的響應,則該消息的響應時長為8點O分2秒減去8點整所得的時長,即該消息的響應時長為2秒。
      [0128]由于根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,因此,接收端在當前等級判定周期內(nèi)的等級可表示接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,進而可根據(jù)接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,確定是否發(fā)送針對接收端的消息,從而實現(xiàn)了根據(jù)接收端自身的狀態(tài)靈活的發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息的目的;進一步由于若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送,因此,當接收端由于故障或其它原因?qū)е陆邮障⒓胺祷仨憫乃俣容^慢時,可暫時不發(fā)送針對該接收端的消息,而先發(fā)送其它接收消息及返回響應的速度正常的接收端對應的消息,如此,則避免了由于發(fā)送該接收消息及返回響應的速度較慢的接收端對應的消息導致的長時間占用線程,延遲待轉(zhuǎn)發(fā)消息隊列中的其它消息發(fā)送時間的情況。
      [0129]具體來說,本發(fā)明實施例中消息轉(zhuǎn)發(fā)設備周期性從數(shù)據(jù)庫中獲取初始消息隊列,每個從數(shù)據(jù)庫中獲取初始消息隊列的周期為一個消息隊列獲取周期;消息轉(zhuǎn)發(fā)設備周期性的對消息轉(zhuǎn)發(fā)設備連接的各個接收端進行等級判定,消息轉(zhuǎn)發(fā)設備對各個接收端進行等級判定的周期為一個等級判定周期。可選地,消息轉(zhuǎn)發(fā)設備以第二時長為周期,每隔第二時長周期性從數(shù)據(jù)庫中獲取初始消息隊列;以第三時長為周期,每隔第三時長周期性的對消息轉(zhuǎn)發(fā)設備連接的各個接收端進行等級判定。第二時長和第三時長之間無必然聯(lián)系??蛇x地,第二時長大于第三時長。舉個例子,每20分鐘從數(shù)據(jù)庫中獲取一次待轉(zhuǎn)發(fā)消息隊列,每隔12分鐘對各個接收端進行一次等級判定。
      [0130]可選地,數(shù)據(jù)庫中按時間順序存入消息,各個按時間順序存入的消息組成了消息隊列,消息轉(zhuǎn)發(fā)設備周期性從數(shù)據(jù)庫的所有消息隊列中獲取存入的時間最早的一批消息,該存入的時間最早的一批消息即為消息轉(zhuǎn)發(fā)設備從數(shù)據(jù)庫中獲取的初始消息隊列。
      [0131]—種可選地實施方式為,將消息轉(zhuǎn)發(fā)設備從數(shù)據(jù)庫中獲取的初始消息隊列確定為新的待轉(zhuǎn)發(fā)消息隊列。
      [0132]另一種可選地實施方式為,在確定當前時刻達到當前消息隊列獲取周期時,從數(shù)據(jù)庫中獲取初始消息隊列;其中,消息隊列獲取周期大于等級判定周期;確定出在當前時刻對應的等級判定周期內(nèi),等級不大于第一等級閾值的接收端;將確定出的等級不大于第一等級閾值的接收端對應的消息,從初始消息隊列中移出;將進行移出操作之后所得到的初始消息隊列,確定為新的待轉(zhuǎn)發(fā)消息隊列。
      [0133]舉個例子,比如,在當前時刻,各個接收端的等級可為5級、4級、3級、2級和I級,其中,第一等級閾值為5級,因此,本發(fā)明實施例中將等級為5級的接收端對應的消息從初始消息隊列中移出,此時獲取的新的待轉(zhuǎn)發(fā)消息隊列中僅包括等級為4級、3級、2級和I級的接收端對應的消息。該示例中4級接收端的響應時長短于5級的接收端的響應時長,該示例中3級接收端的響應時長短于4級的接收端的響應時長,該示例中2級接收端的響應時長短于3級的接收端的響應時長,該示例中I級接收端的響應時長短于2級的接收端的響應時長。也就是說,4級高于5級,3級高于4級,2級高于3級,I級高于2級。
      [0134]由于等級不大于第一等級閾值的接收端可能由于故障或其它原因,導致該等級不大于第一等級閾值的接收端的的響應時長較長,或者多次向等級不大于第一等級閾值的接收端重發(fā)消息,此時即使從數(shù)據(jù)庫中將該等級不大于第一等級閾值的接收端的消息取出,則也可能發(fā)送失敗,或無法及時收到響應,或者多次重發(fā),因此,在批量的周期性的獲取待轉(zhuǎn)發(fā)消息隊列時,待轉(zhuǎn)發(fā)消息隊列中直接不包括將該等級不大于第一等級閾值的接收端的消息,則可使消息轉(zhuǎn)發(fā)設備集中精力向那些響應時長正常的接收端,即正常工作狀態(tài)的接收端發(fā)送消息,如此,則優(yōu)化了消息轉(zhuǎn)發(fā)設備的工作方式,提高了消息轉(zhuǎn)發(fā)設備的效率,也避免過多的出現(xiàn)重發(fā)的情況。
      [0135]進一步,可選地,每次批量讀取的待轉(zhuǎn)發(fā)消息隊列中的消息的數(shù)量較大,在當前次獲取待轉(zhuǎn)發(fā)消息隊列之后,下一次獲取待轉(zhuǎn)發(fā)消息隊列之前,還進行了至少一次的接收端的等級判定過程,此時,針對當前次獲取的待轉(zhuǎn)發(fā)消息隊列中的消息,在每個等級判定周期中,根據(jù)每個判定周期內(nèi)的各個接收端的等級向接收端發(fā)送針對該接收端的消息。
      [0136]舉個例子,比如,在當前次獲取待轉(zhuǎn)發(fā)消息隊列時,由于當前時刻接收端I的等級不大于第一等級閾值,而接收端2和接收端3的等級均大于第一等級閾值,因此獲取的待轉(zhuǎn)發(fā)消息隊列中僅包括接收端2和接收端3對應的消息。在下一次獲取待轉(zhuǎn)發(fā)消息隊列之前,在某個等級判定周期內(nèi),經(jīng)判定接收端2的等級也不大于第一等級閾值,此時,將待轉(zhuǎn)發(fā)消息隊列中針對接收端2的消息暫停發(fā)送。比如,消息隊列中第一條消息是發(fā)送給接收端3的,則正常發(fā)送,第二條消息經(jīng)判定是發(fā)送給接收端2的,則跳過該第二條消息,判斷是否發(fā)送第三條消息。另一種方式為,消息隊列中第一條消息是發(fā)送給接收端3的,則正常發(fā)送第一條消息,第二條消息經(jīng)判定是發(fā)送給接收端2的,則將該第二條消息放置于暫停發(fā)送的隊列,并不發(fā)送第二條消息,接著判斷是否發(fā)送第三條消息。
      [0137]由于等級不大于第一等級閾值的接收端可能由于故障或其它原因,導致該等級不大于第一等級閾值的接收端的的響應時長較長,或者多次向等級不大于第一等級閾值的接收端重發(fā)消息,此時即使向?qū)⒃摰燃壊淮笥诘谝坏燃夐撝档慕邮斩说陌l(fā)送消息,則也可能發(fā)送失敗,或無法及時收到響應,或者多次重發(fā),因此,先暫停向該等級不大于第一等級閾值的接收端發(fā)送消息,待該等級不大于第一等級閾值的接收端的等級大于第一等級閾值時,即恢復正常工作狀態(tài)時,再發(fā)送,則可使消息轉(zhuǎn)發(fā)設備集中精力向那些響應時長正常的接收端,即正常工作狀態(tài)的接收端發(fā)送消息,如此,則優(yōu)化了消息轉(zhuǎn)發(fā)設備的工作方式,提高了消息轉(zhuǎn)發(fā)設備的效率,也避免過多的出現(xiàn)重發(fā)的情況。
      [0138]上述步驟301中,可選地,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括:
      [0139]若確定接收端在上一個等級判定周期的等級不大于第一等級閾值,則調(diào)整接收端的等級,以使調(diào)整后的接收端的等級大于第一等級閾值,并根據(jù)調(diào)整后的接收端的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0140]若確定接收端在上一個等級判定周期的等級大于第一等級閾值時,根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0141]具體來說,若確定接收端在上一個等級判定周期的等級不大于第一等級閾值,則調(diào)整接收端的等級,以使調(diào)整后的接收端的等級大于第一等級閾值,且使調(diào)整后的接收端的等級僅僅大于第一等級閾值一個級別,比如接收端在上一個等級判定周期的等級為5級,第一等級閾值為5級,此時將接收端的等級調(diào)高一級,使調(diào)整后的接收端的等級為4級,此時,調(diào)整后的接收端的等級大于第一等級閾值。
      [0142]如此,一方面由于在上一個等級判定周期的等級大于第一等級閾值的接收端調(diào)整后,等級大于第一等級閾值,消息轉(zhuǎn)發(fā)設備可不再將在上一個等級判定周期的等級不大于第一等級閾值的接收端的消息暫停,可向在上一個等級判定周期的等級不大于第一等級閾值的接收端發(fā)送消息,如此可根據(jù)向在上一個等級判定周期的等級不大于第一等級閾值的接收端發(fā)送消息對應的響應時長,對在上一個等級判定周期的等級不大于第一等級閾值的接收端進行判斷,判斷該接收端在當前等級判定周期內(nèi)的等級。
      [0143]另一方面,優(yōu)選地,調(diào)整后的接收端的等級僅僅大于第一等級閾值一個級別,則調(diào)整后的接收端的等級接近于調(diào)整前的接收端的等級,因此可根據(jù)調(diào)整后的接收端的等級更合理的為該接收端設置對應的線程數(shù)量,并通過設置的線程發(fā)送消息,比如,為等級比較低的接收端設置較多的線程,如此,可盡量加快等級比較低的接收端對應的消息的發(fā)送速度,可見,通過該方式更加優(yōu)化了消息轉(zhuǎn)發(fā)設備的工作方式。
      [0144]上述步驟302中,可選地,根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,具體包括:
      [0145]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端中在第一時長內(nèi)的至少一個消息的響應時長的平均值;
      [0146]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值;
      [0147]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值不大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值的等級,且根據(jù)述接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值,確定接收端在當前等級判定周期內(nèi)的等級;其中,接收端的響應時長的平均值越短,所對應的接收端的等級越高。
      [0148]可選地,每個等級對應一個響應時長的范圍,舉個例子,比如響應時長O秒至I秒,則該響應時長范圍對應的等級為I級;若響應時長為I秒至2秒,則該響應時長范圍對應的等級為2級;若響應時長為2秒至3秒,則該響應時長范圍對應的等級為3級;若響應時長為3秒至4秒,則該響應時長范圍對應的等級為4級;若響應時長為4秒至5秒,則該響應時長范圍對應的等級為5級。可選地,若響應時長為5秒以上,則該響應時長范圍對應的等級為6級;或者若響應時長為4秒以上時,該響應時長范圍對應的等級為5級。
      [0149]為了清楚描述上述方法流程,下面通過示例一舉個具體的例子用于描述上述方法中的一種具體的實現(xiàn)方式。
      [0150]示例一
      [0151 ]消息轉(zhuǎn)發(fā)設備每30分鐘獲取一次待轉(zhuǎn)發(fā)消息隊列,每12分鐘對接收端進行一次等級判定。消息轉(zhuǎn)發(fā)設備連接接收端1、接收端2、接收端3、接收端4、接收端5和接收端6 ;各個接收端的等級可為5級、4級、3級、2級和I級,其中,第一等級閾值為5級,該示例中4級接收端的響應時長短于5級的接收端的響應時長,該示例中3級接收端的響應時長短于4級的接收端的響應時長,該示例中2級接收端的響應時長短于3級的接收端的響應時長,該示例中I級接收端的響應時長短于2級的接收端的響應時長。
      [0152]可選地,消息轉(zhuǎn)發(fā)設備在最初開機時對消息轉(zhuǎn)發(fā)設備所連接的所有接收端進行初始化,為所有接收端分配一個初始等級,之后在每個等級判定周期為每個接收端重新分配等級。
      [0153]比如在8點,8點為第一個消息隊列獲取周期的開始時刻,8點30分為第二個消息隊列獲取周期的開始時刻,7點55分為第一個等級判定周期的開始時刻,8點7分為第二個等級判定周期的開始時刻,8點19分為第三個等級判定周期的開始時刻,8點31分為第三個等級判定周期的開始時刻。
      [0154]在7點55分開始的第一個等級判定周期中,接收端I的等級為5級,接收端2和接收端3的等級為4級,接收端4的等級為3級,接收端5的等級為2級,接收端6的等級為I級。
      [0155]當前時刻為8點,在確定當前時刻達到當前消息隊列獲取周期時,即當前時刻達到8點時,即到達了第一個消息隊列獲取周期,此時從數(shù)據(jù)庫中獲取初始消息隊列;確定出在當前時刻8點對應的等級判定周期內(nèi),即當前時刻8點對應的第一個等級判定周期內(nèi),等級不大于第一等級閾值的接收端為接收端I;將接收端I對應的消息從初始消息隊列中移出;將進行移出操作之后所得到的初始消息隊列,確定為新的待轉(zhuǎn)發(fā)消息隊列,此時新的待轉(zhuǎn)發(fā)消息隊列中不包括接收端I的消息隊列。
      [0156]之后根據(jù)第一個等級判定周期內(nèi)接收端2、接收端3、接收端4、接收端5和接收端6的等級,向接收端2、接收端3、接收端4、接收端5和接收端6發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0157]當當前時刻達到8點7分,此時消息轉(zhuǎn)發(fā)設備確定當前時刻到達第二個等級判定周期,此時,優(yōu)選地,將確定接收端在上一個等級判定周期的等級不大于第一等級閾值,則調(diào)整接收端的等級,以使調(diào)整后的接收端的等級大于第一等級閾值。也就是說,第一個等級判定周期為第二個等級判定周期的上一個等級判定周期,第二個等級判定周期為當前的等級判定周期,由于第一個等級判定周期內(nèi)接收端I的等級為5級,不大于第一等級閾值,因此,需要將接收端I的等級進行調(diào)整,可以調(diào)整為4級、3級或2級等等,只要大于第一等級閾值即可,優(yōu)選地,將接收端I的等級調(diào)高5級,即將接收端I的等級調(diào)整為4級,其余接收端在第一個等級判定周期內(nèi)的等級均大于第一等級閾值,因此不對其它接收端的等級進行調(diào)整。
      [0158]將第一時長設置為2分鐘,則在第一時長內(nèi),由于調(diào)整后的接收端I的等級為4級,其余接收端在第一個等級判定周期內(nèi)的等級均大于第一等級閾值,因此,在該第一時長內(nèi),依次向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,比如第一條消息是需要發(fā)送給接收端2的,就將該消息發(fā)送給接收端2,第二條消息是發(fā)送給接收端3的,就將該消息發(fā)送給接收端3。第一個消息隊列獲取周期內(nèi)并未獲取接收端I對應的消息,因此該第一時長內(nèi)不會向接收端I發(fā)送消息。
      [0159]針對6個接收端中的每個接收端,根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端中在第一時長內(nèi)的至少一個消息的響應時長的平均值,比如在2分鐘內(nèi)向接收端3發(fā)送了 22條消息,并受到接收端3返回的22條響應,針對22條消息中的每一條消息,計算從向接收端3發(fā)送該條消息開始,至接收端反饋該條消息的響應之間的時長,得到該條消息的響應時長。統(tǒng)計22條消息的響應時長的平均值,并根據(jù)統(tǒng)計出的響應時長的平均值確定接收端3在第二個等級判定周期內(nèi)的等級。
      [0160]比如,經(jīng)處理分析,在第二個等級判定周期內(nèi)各個接收端的等級為:由于未向接收端I發(fā)送消息,此時保持接收端I為調(diào)整后的等級,即接收端I在第二個等級判定周期內(nèi)的等級為4級;接收端2的等級為5級,接收端3和接收端4的等級為3級,接收端5的等級為2級,接收端6的等級為I級。可見,在第二個等級判定周期內(nèi),接收端2的等級小于第一等級閾值。
      [0161]當前確定出第二個等級判定周期內(nèi)各個接收端的等級時,立即根據(jù)第二個等級判定周期內(nèi)各個接收端的等級發(fā)送轉(zhuǎn)發(fā)消息隊列中的消息。具體來說,當?shù)谝粭l消息時發(fā)送給接收端3的,則將該第一條消息發(fā)送給接收端3,當?shù)诙l消息是發(fā)送給接收端2的,則暫停發(fā)送第二條消息,直接判斷第三條消息,若第三條消息是發(fā)給接收端6的,則將第三條消息發(fā)送給接收端6,若第四條消息是發(fā)送給接收端3的,則暫停發(fā)送第四條消息,判斷第五條消息。
      [0162]在第二個等級判定周期內(nèi)依據(jù)上述方法,暫停接收端2對應的消息,其余接收端對應的消息正常發(fā)送,若當前時刻達到在8點19分時,則為第三個等級判定周期的開始時刻,此時將接收端2的等級先調(diào)高為4級,之后在第一時長內(nèi)向各個接收端發(fā)送消息,并判斷各個接收端在第三個等級判定周期內(nèi)的等級,與前述方法類似,不再贅述。
      [0163]通過上述方法確定出在第三個等級判定周期內(nèi)各個接收端的等級為:由于未向接收端I發(fā)送消息,此時保持接收端I為調(diào)整后的等級,即接收端I在第二個等級判定周期內(nèi)的等級為4級;接收端2先調(diào)整為4級,之后向接收端2發(fā)送消息,經(jīng)判斷,接收端2的等級為4級;接收端3的等級為5級,接收端4的等級為3級,接收端5的等級為2級,接收端6的等級為I級。可見,在第三個等級判定周期內(nèi),接收端3的等級小于第一等級閾值。
      [0164]當當前時刻達到8點30分時,消息轉(zhuǎn)發(fā)設備從數(shù)據(jù)庫中獲取初始消息隊列,此時初始消息隊列中包括在第一個消息隊列獲取周期篩選掉的接收端I的消息,還包括其它各個接收端對應的消息,此時從初始消息隊列中將接收端3對應的消息移出,得到新的待轉(zhuǎn)發(fā)消息隊列。
      [0165]在該示例中,在第三個等級判定周期內(nèi),由于接收端3的等級為5級,因此接收到3對應的消息被暫停了,在8點31分時,需要將接收端3的等級進行調(diào)整,調(diào)整為4級,此時,雖然在8點30分重新獲取的新的待轉(zhuǎn)發(fā)消息隊列中沒有接收端3的消息,但是消息轉(zhuǎn)發(fā)設備中遺留的還未轉(zhuǎn)發(fā)完的上一個獲取的待轉(zhuǎn)發(fā)消息隊列中還包括一些接收端3對應的消息,在8點31分對接收端3的等級調(diào)整為4級之后的第一時長內(nèi),當遇到接收端3的消息時,向接收端3發(fā)送接收端3對應的消息。
      [0166]通過上述示例一可清楚的了解本發(fā)明實施例所提供的一種實現(xiàn)方式。
      [0167]可選地,接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長與接收端在上一個等級判定周期內(nèi)的等級成正比??蛇x地,接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長= LX2S其中,L為接收端在上一個等級判定周期內(nèi)的等級。通過下述示例二進行詳細論述。
      [0168]示例二
      [0169]每個等級的接收端對應的等級判定周期都不同,針對每個等級的接收端分別對應一個等級判定周期的時長。等級為3級的接收端對應的等級判定周期為LX21,即等級為3級的接收端對應的等級判定周期為3 X23,為24,等級為3級的接收端對應的等級判定周期為24秒;類似的,等級為2級的接收端對應的等級判定周期為8秒。也就是說,消息轉(zhuǎn)發(fā)設備在確定了每個接收端的等級之后,根據(jù)每個接收端的等級所對應的等級判定周期的時長確定下一次判定該接收端的等級時間。
      [0170]比如,在8點的時候接收端2當前等級為2級,接收端3當前等級為3級,則由于等級為3級的接收端對應的等級判定周期為24秒,等級為2級的接收端對應的等級判定周期為8秒,因此,在8點O分8秒時對接收端2進行再次的等級判定,在8點O分2 4秒對等級為3級的接收端3再次進行等級判定。比如在8點O分8秒的周期內(nèi)將接收端2的等級更新為3級,此時則在8點O分32秒的時候再次對接收端2進行等級判定。
      [0171]上述步驟304中,可選地,在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括:
      [0172]在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0173]在確定第二時長內(nèi)未接收到接收端反饋的消息對應的響應時,重發(fā)K次待發(fā)送消息;其中,K不大于預設重發(fā)次數(shù)閾值;其中,K越大,第K次重發(fā)與第(K-1)次重發(fā)之間的時間間隔越大;
      [0174]在確定接收到接收端反饋的消息對應的響應時,確定消息發(fā)送成功,在確定K等于預設重發(fā)次數(shù)閾值時,確定消息發(fā)送失敗。
      [0175]本發(fā)明實施例中,系統(tǒng)或者消息轉(zhuǎn)發(fā)設備預設重發(fā)次數(shù)閾值,當發(fā)送消息不成功時,進行重發(fā),但是重發(fā)次數(shù)不能大于重發(fā)次數(shù)閾值。
      [0176]舉個例子,比如在8點O分O秒發(fā)送當前的消息給接收端3,在5秒內(nèi)沒有收到接收端3反饋的響應,此時接收端3可能在重啟或者發(fā)生了故障,或者其它原因?qū)е陆邮斩?沒能在正常時間內(nèi)反饋的響應。此時,消息發(fā)送設備啟動重發(fā)策略,在距離第一次發(fā)送5秒之后重新發(fā)送第二次,即在8點O分5秒第二次發(fā)送該條消息;此時在10秒內(nèi)還是沒有收到接收端3的反饋的響應,系統(tǒng)設置發(fā)送消息進行重發(fā)的次數(shù)不能大于次數(shù)閾值,比如此時閾值為5次,則此時消息轉(zhuǎn)發(fā)設備在距離第二次發(fā)送10秒之后重新發(fā)送第三次,即在8點O分15秒后第三次發(fā)送該條消息;此時在15秒內(nèi)還是沒有收到接收端3的反饋的響應,則此時消息轉(zhuǎn)發(fā)設備在距離第三次發(fā)送15秒之后重新發(fā)送第四次,即在8點O分30秒后第四次發(fā)送該條消息;此時如果在20秒內(nèi)接收到接收端3的反饋的響應,確定消息發(fā)送成功。此時如果在20秒內(nèi)還是沒有收到接收端3的反饋的響應,則此時消息轉(zhuǎn)發(fā)設備在距離第四次發(fā)送20秒之后重新發(fā)送第五次,即在8點O分50秒后第五次發(fā)送該條消息。如果在一定時長內(nèi)還是沒有收到接收端3返回的響應,則確定該條消息發(fā)送失敗??蛇x地,將發(fā)送失敗的消息進行標記,待接收端3恢復正常工作之后再次向接收端3發(fā)送。另一種可選地實施方式為,向客戶端反饋該條消息發(fā)送失敗。
      [0177]如此,通過衰減策略,即重發(fā)次數(shù)越多,重發(fā)之間相隔的時間越長,如此,可在有限的重發(fā)次數(shù)內(nèi),盡可能的等待接收端3恢復正常工作,為接收端3恢復正常工作提供了更長的時間,從而增加了消息發(fā)送成功的概率。比如,接收端3正在重啟,此時向接收端3進行重發(fā),在有限的重發(fā)次數(shù)內(nèi),延長了重發(fā)所經(jīng)過的時間,如此可度過接收端3的重啟時間,更有可能在接收到3重啟完畢之后還有幾次向接收端3進行重發(fā)的機會,如此,則提高了接收端3成功接收到該消息的機率,優(yōu)化了消息轉(zhuǎn)發(fā)設備的轉(zhuǎn)發(fā)信息的方式。
      [0178]可選地,第η次重發(fā),與第n+1次重發(fā)之間的時間間隔為2n—S比如,當重發(fā)到第4次尚未成功時,第5次的重發(fā)將在第4次重發(fā)之后的8秒之后觸發(fā),在每次重發(fā)的等待時間內(nèi),可以繼續(xù)轉(zhuǎn)發(fā)其它的消息,這樣可以降低消息轉(zhuǎn)發(fā)設備的負載率,提高消息轉(zhuǎn)發(fā)的效率和成功率。
      [0179]可選地,上述步驟304之前,還需要為消息轉(zhuǎn)發(fā)設備連接的接收端分配資源,即為不同的接收端分配線程,消息轉(zhuǎn)發(fā)設備使用線程池中的線程向接收端發(fā)送消息。
      [0180]可選地,根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,具體包括:
      [0181]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;根據(jù)確定的接收端在當前等級判定周期內(nèi)的等級,為接收端分配接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量;
      [0182]其中,接收端在當前等級判定周期的等級越高,為接收端分配的在當前等級判定周期內(nèi)的等級對應的線程數(shù)量越少。
      [0183]舉個例子,消息轉(zhuǎn)發(fā)設備的線程池中共有50條線程,共有六個個接收端,分別為接收端1、接收端2、接收端3、接收端4、接收端5和接收端6。接收端I的等級為2級,接收端2、接收端3和接收端4的等級為3級,接收端5和接收端6的等級為4級。2級高于3級,3級高于4級。由于接收端的等級越高,響應時長越短,因此等級越高的接收端使用較少的線程即可。一種可選地方式為,為等級為2級的接收端分配10個線程,為等級為3級的接收端分配15個線程,為等級為4級的接收端分配25個線程。此時,消息轉(zhuǎn)發(fā)設備通過為等級為2級的接收端分配的10個線程向接收端I發(fā)送消息,消息轉(zhuǎn)發(fā)設備通過為等級為3級的接收端分配的15個線程向接收端2、接收端3和接收端4發(fā)送消息,消息轉(zhuǎn)發(fā)設備通過為等級為4級的接收端分配的25個線程向接收端5和接收端6發(fā)送消息。以消息轉(zhuǎn)發(fā)設備通過為等級為4級的接收端分配的25個線程向接收端5和接收端6發(fā)送消息舉個例子,消息轉(zhuǎn)發(fā)設備需要向接收端5發(fā)送消息時,可先確定為等級為4級的接收端分配的25個線程中有未被占用的線程,確定出一個未被占用的線程,通過該確定出的未被占用的線程向接收端5發(fā)送消息,此時,該線程從未被占用狀態(tài)變?yōu)檎加脿顟B(tài),接收端5通過該線程向消息轉(zhuǎn)發(fā)設備反饋該消息的響應,消息轉(zhuǎn)發(fā)設備接收到該消息的響應之后,釋放該線程,即該線程從占用狀態(tài)又轉(zhuǎn)換為未被占用的狀
      ??τ O
      [0184]另一種可選地實施方式為,根據(jù)每個等級的接收端的數(shù)量,以及接收端的等級為每個等級的接收端分配線程。比如,接收端I的等級為2級,接收端2、接收端3和接收端4的等級為3級,接收端5和接收端6的等級為4級。此時為等級為2的接收端僅有一個,為等級為2級的接收端分配5個線程,由于等級為3級的接收端有三個,因此為等級為3級的接收端分配21個線程,此時,每個等級為3級的接收端可平均對應7個線程,由于等級為4級的接收端有兩個,因此為等級為4級的接收端分配24個線程,此時,每個等級為4級的接收端可平均對應12個線程。
      [0185]可選地,上述步驟304之前,為消息轉(zhuǎn)發(fā)設備連接的接收端分配資源,即為不同的接收端分配線程,還包括另一種可選地實施方式。可選地,根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,具體包括:
      [0186]針對接收端所在的系統(tǒng)所包括的多個接收端中的每個接收端,根據(jù)獲取的每個接收端在第一時長內(nèi)的至少一個消息的響應時長,確定每個接收端在當前等級判定周期內(nèi)的等級;
      [0187]根據(jù)多個接收端中每個接收端的等級,對系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量;其中,預設的范圍的兩個節(jié)點為預設范圍的最小值和預設范圍的最大值;
      [0188]根據(jù)系統(tǒng)的總的線程數(shù)量,為每個等級的接收端分配每個等級對應的線程數(shù)量。
      [0189]具體來說,本發(fā)明實施例中消息轉(zhuǎn)發(fā)設備連接的多個接收端共有五個,此時根據(jù)五個接收端中每個接收端在當前等級判定周期內(nèi)的等級,對消息轉(zhuǎn)發(fā)設備的線程池中的總的線程數(shù)量進行調(diào)整。舉個例子,線程池中線程數(shù)量的變化范圍為[30,70],即線程池中的線程數(shù)量最少為30個線程,最多為70個線程,因為線程數(shù)量越多,系統(tǒng)負荷就越大,且造成資源浪費,但是線程數(shù)量如果過少,就會使接收端不夠用,反而延遲了消息轉(zhuǎn)發(fā)效率。因此,本發(fā)明實施例中的線程池中的總的線程數(shù)量可根據(jù)具體情況進行調(diào)整。
      [0190]具體調(diào)整方式有多種,比如在當前等級判定周期內(nèi),大于第一等級閾值的接收端越多,則在當前等級判定周期內(nèi)線程池中的總的線程數(shù)量就越多,或者處于低等級的接收端數(shù)量較少,處于高等級的接收端的數(shù)量較多,此時由于處于高等級的接收端的響應時長較短,因此線程池中使用較少的線程即可,因此此時當前等級判定周期內(nèi)線程池中的總的線程數(shù)量較少即可。
      [0191]本發(fā)明實施例中還提供另外一種可選地實施方式,用于確定線程池中總的線程數(shù)量。可選地,根據(jù)多個接收端中每個接收端的等級,對系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量,具體包括:
      [0192]根據(jù)多個接收端中每個接收端的等級,通過以下公式計算備選總的線程數(shù)量:
      [0193]備選總的線程數(shù)量=預設范圍的最小值+預設范圍的最大值X[(多個接收端中的等級大于第一等級閾值,且小于第二等級閾值的所有接收端的數(shù)量多個接收端的總數(shù)量];
      [0194]其中,第二等級閾值高于第一等級閾值;
      [0195]若確定備選總的線程數(shù)量大于預設范圍的最大值,則將預設范圍的最大值確定為總的線程數(shù)量;
      [0196]若確定備選總的線程數(shù)量小于預設范圍的最小值,則將預設范圍的最小值確定為總的線程數(shù)量;
      [0197]若確定備選總的線程數(shù)量不大于預設范圍的最大值,且不小于預設范圍的最小值,則將備選總的線程數(shù)量確定為總的線程數(shù)量。
      [0198]之后可根據(jù)總的線程數(shù)量為每個等級的接收端分配相應的線程,比如等級越高的接收端分配的線程數(shù)量越少。本發(fā)明實施例中還提供另一種實施方式,可選地,根據(jù)系統(tǒng)的總的線程數(shù)量,為每個等級的接收端分配每個等級對應的線程數(shù)量,具體包括:
      [0199]針對每個等級,根據(jù)系統(tǒng)的總的線程數(shù)量,根據(jù)以下公式為該等級的接收端分配該等級對應的備選線程數(shù)量:
      [0200]該等級對應的備選線程數(shù)量=總的線程數(shù)量X(在多個接收端中該等級對應的所有接收端的數(shù)量+多個接收端的總的數(shù)量);
      [0201]將該等級對應的備選線程數(shù)量確定為該等級對應的線程數(shù)量;或者根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量。
      [0202]舉個例子,預設范圍的最小值為30,預設范圍的最大值為50,第一等級閾值為5級,第二等級閾值為2級,多個接收端中的等級大于第一等級閾值,且小于第二等級閾值的所有接收端的數(shù)量,即等級為3級和4級的接收端的數(shù)量為3個,其中,等級為3級的接收端2個,等級為4級的接收端為I個,接收端總數(shù)量為6個,一個接收端的等級為5級,另外兩個接收端的等級為2級,此時:
      [0203]備選總的線程數(shù)量=30+50X[3 + 6] = 55;此時確定備選總的線程數(shù)量大于預設范圍的最大值,則將預設范圍的最大值確定為總的線程數(shù)量,即線程池中總的線程數(shù)量為50 ο
      [0204]之前確定每個等級對應的線程數(shù)量,以等級為3級的接收端為例進行介紹,根據(jù)以下公式為等級為3級的2個接收端分配等級為3級對應的備選線程數(shù)量:
      [0205]3級對應的備選線程數(shù)量=50 X (2 + 6) = 17。本發(fā)明實施例中線程數(shù)量均為整數(shù)。
      [0206]可選地,將17確定為等級為3級的2個接收端對應的線程數(shù)量;或者根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量。
      [0207]根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量包括多種實施方式,比如根據(jù)每個等級對各個等級的接收端的數(shù)量進行調(diào)整,或者根據(jù)每個等級對應的接收端的數(shù)量進行調(diào)整。本發(fā)明實施例中提供一種可選地實施方式為,根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量,具體包括:
      [0208]對每個等級對應的備選線程數(shù)量進行調(diào)整,將調(diào)整后的每個等級的備選線程數(shù)量確定為每個等級的線程數(shù)量;
      [0209]其中,針對每個等級,調(diào)整后的每個等級的備選線程數(shù)量滿足以下條件:
      [0210]等級越高,調(diào)整后的該等級的備選線程數(shù)量越少;
      [0211]所有等級中的每個等級對應的線程數(shù)量的總和,等于所有等級中每個等級對應的調(diào)整后的備選線程數(shù)量的總和。
      [0212]舉個例子,比如接收端共有6個,等級為3級的接收端有3個,等級為4級的接收端有3個,此時根據(jù)上述方法為等級為3級的接收端確定了備選線程數(shù)量為25,為等級為4級的接收端確定了備選線程數(shù)量為25??偟木€程數(shù)量為50根。對每個等級對應的備選線程數(shù)量進行調(diào)整,將調(diào)整后的每個等級的備選線程數(shù)量確定為每個等級的線程數(shù)量,等級越高,調(diào)整后的該等級的備選線程數(shù)量越少;由于3級高于4級,因此調(diào)整后的等級為3級的接收端確定了線程數(shù)量為20,為等級為4級的接收端確定了線程數(shù)量為30。
      [0213]通過上述方法為每個等級的接收端分配了線程之后,在第一時長后,根據(jù)接收端在當前等級判定周期內(nèi)的等級,通過為接收端分配的接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量對應的線程,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0214]可見,在每個等級判定周期內(nèi),根據(jù)接收端的等級動態(tài)的調(diào)整線程池中總的線程的數(shù)量,并根據(jù)接收端的等級,以及每個等級對應的接收端的數(shù)量,動態(tài)調(diào)整每個等級對應的線程的數(shù)量,一方面節(jié)省了資源,避免設置過多的線程,導致資源浪費,另一方面合理設置總的線程數(shù)量,避免過少的線程導致信息轉(zhuǎn)發(fā)效率低下,第三方面優(yōu)化線程的分配,即等級越高的接收端的響應時長越短,此時等級越高的接收端對應的線程數(shù)量越少,從而使有限的線程得到更高效的使用,使消息轉(zhuǎn)發(fā)效率得到提高。
      [0215]從上述內(nèi)容可以看出:本發(fā)明實施例中,在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;確定接收端在第一時長內(nèi)的至少一個消息的響應時長;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到接收端反饋的消息對應的響應之間的時長;根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。由于根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,因此,接收端在當前等級判定周期內(nèi)的等級可表示接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,進而可根據(jù)接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,確定是否發(fā)送針對接收端的消息,從而實現(xiàn)了根據(jù)接收端自身的狀態(tài)靈活的發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息的目的;進一步由于若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送,因此,當接收端由于故障或其它原因?qū)е陆邮障⒓胺祷仨憫乃俣容^慢時,可暫時不發(fā)送針對該接收端的消息,而先發(fā)送其它接收消息及返回響應的速度正常的接收端對應的消息,如此,則避免了由于發(fā)送該接收消息及返回響應的速度較慢的接收端對應的消息導致的長時間占用線程,延遲待轉(zhuǎn)發(fā)消息隊列中的其它消息發(fā)送時間的情況。
      [0216]圖4示例性示出了本發(fā)明實施例提供的一種消息轉(zhuǎn)發(fā)設備的結(jié)構(gòu)示意圖。
      [0217]基于相同構(gòu)思,本發(fā)明實施例提供一種消息轉(zhuǎn)發(fā)設備,用于執(zhí)行上述方法流程,如圖4所示,消息轉(zhuǎn)發(fā)設備400包括第一發(fā)送單元401、確定單元402和第二發(fā)送單元403,可選地,還包括獲取單元404。
      [0218]第一發(fā)送單元,用于在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0219]確定單元,用于確定接收端在第一時長內(nèi)的至少一個消息的響應時長;根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到接收端反饋的消息對應的響應之間的時長;
      [0220]第二發(fā)送單元,用于若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;
      [0221]若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0222]可選地,第一發(fā)送單元,具體用于:
      [0223]若確定接收端在上一個等級判定周期的等級不大于第一等級閾值,則調(diào)整接收端的等級,以使調(diào)整后的接收端的等級大于第一等級閾值,并根據(jù)調(diào)整后的接收端的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0224]若確定接收端在上一個等級判定周期的等級大于第一等級閾值時,根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0225]可選地,確定單元,具體用于:
      [0226]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端中在第一時長內(nèi)的至少一個消息的響應時長的平均值;
      [0227]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值;
      [0228]若接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值不大于響應時長閾值,則確定接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值的等級,且根據(jù)述接收端在第一時長內(nèi)的至少一個消息的響應時長的平均值,確定接收端在當前等級判定周期內(nèi)的等級;
      [0229]其中,接收端的響應時長的平均值越短,所對應的接收端的等級越高。
      [0230]可選地,確定單元,具體用于:
      [0231]根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;
      [0232]根據(jù)確定的接收端在當前等級判定周期內(nèi)的等級,為接收端分配接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量;
      [0233]其中,接收端在當前等級判定周期的等級越高,為接收端分配的在當前等級判定周期內(nèi)的等級對應的線程數(shù)量越少。
      [0234]可選地,確定單元,具體用于:
      [0235]針對接收端所在的系統(tǒng)所包括的多個接收端中的每個接收端,根據(jù)獲取的每個接收端在第一時長內(nèi)的至少一個消息的響應時長,確定每個接收端在當前等級判定周期內(nèi)的等級;
      [0236]根據(jù)多個接收端中每個接收端的等級,對系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量;其中,預設的范圍的兩個節(jié)點為預設范圍的最小值和預設范圍的最大值;
      [0237]根據(jù)系統(tǒng)的總的線程數(shù)量,為每個等級的接收端分配每個等級對應的線程數(shù)量。
      [0238]可選地,確定單元,具體用于:
      [0239]根據(jù)多個接收端中每個接收端的等級,通過以下公式計算備選總的線程數(shù)量:
      [0240]備選總的線程數(shù)量=預設范圍的最小值+預設范圍的最大值X[(多個接收端中的等級大于第一等級閾值,且小于第二等級閾值的所有接收端的數(shù)量多個接收端的總數(shù)量];
      [0241 ]其中,第二等級閾值高于第一等級閾值;
      [0242]若確定備選總的線程數(shù)量大于預設范圍的最大值,則將預設范圍的最大值確定為總的線程數(shù)量;
      [0243]若確定備選總的線程數(shù)量小于預設范圍的最小值,則將預設范圍的最小值確定為總的線程數(shù)量;
      [0244]若確定備選總的線程數(shù)量不大于預設范圍的最大值,且不小于預設范圍的最小值,則將備選總的線程數(shù)量確定為總的線程數(shù)量。
      [0245]可選地,確定單元,具體用于:
      [0246]針對每個等級,根據(jù)系統(tǒng)的總的線程數(shù)量,根據(jù)以下公式為該等級的接收端分配該等級對應的備選線程數(shù)量:
      [0247]該等級對應的備選線程數(shù)量=總的線程數(shù)量X(在多個接收端中該等級對應的所有接收端的數(shù)量+多個接收端的總的數(shù)量);
      [0248]將該等級對應的備選線程數(shù)量確定為該等級對應的線程數(shù)量;或者根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量。
      [0249]可選地,確定單元,具體用于:
      [0250]對每個等級對應的備選線程數(shù)量進行調(diào)整,將調(diào)整后的每個等級的備選線程數(shù)量確定為每個等級的線程數(shù)量;
      [0251]其中,針對每個等級,調(diào)整后的每個等級的備選線程數(shù)量滿足以下條件:
      [0252]等級越高,調(diào)整后的該等級的備選線程數(shù)量越少;
      [0253]所有等級中的每個等級對應的線程數(shù)量的總和,等于所有等級中每個等級對應的調(diào)整后的備選線程數(shù)量的總和。
      [0254]可選地,第二發(fā)送單元,具體用于:
      [0255]在第一時長后,根據(jù)接收端在當前等級判定周期內(nèi)的等級,通過為接收端分配的接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量對應的線程,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。
      [0256]可選地,第二發(fā)送單元,具體用于:
      [0257]在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;
      [0258]在確定第二時長內(nèi)未接收到接收端反饋的消息對應的響應時,重發(fā)K次待發(fā)送消息;其中,K不大于預設重發(fā)次數(shù)閾值;其中,K越大,第K次重發(fā)與第(K-1)次重發(fā)之間的時間間隔越大;
      [0259]在確定接收到接收端反饋的消息對應的響應時,確定消息發(fā)送成功,在確定K等于預設重發(fā)次數(shù)閾值時,確定消息發(fā)送失敗。
      [0260]可選地,還包括獲取單元,用于:
      [0261]在確定當前時刻達到當前消息隊列獲取周期時,從數(shù)據(jù)庫中獲取初始消息隊列;其中,消息隊列獲取周期大于等級判定周期;
      [0262]確定出在當前時刻對應的等級判定周期內(nèi),等級不大于第一等級閾值的接收端;
      [0263]將確定出的等級不大于第一等級閾值的接收端對應的消息,從初始消息隊列中移出;
      [0264]將進行移出操作之后所得到的初始消息隊列,確定為新的待轉(zhuǎn)發(fā)消息隊列。
      [0265]可選地,接收端在上一個等級判定周期內(nèi)的等級越高,則接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長越短。
      [0266]可選地,接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時亥Ij之間的時長=LX 21;
      [0267]其中丄為接收端在上一個等級判定周期內(nèi)的等級。
      [0268]從上述內(nèi)容可以看出:本發(fā)明實施例中,在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息;確定接收端在第一時長內(nèi)的至少一個消息的響應時長;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到接收端反饋的消息對應的響應之間的時長;根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級;若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送;若接收端在當前等級判定周期內(nèi)的等級大于第一等級閾值,則在第一時長后根據(jù)接收端在當前等級判定周期內(nèi)的等級發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。由于根據(jù)獲取的接收端在第一時長內(nèi)的至少一個消息的響應時長,確定接收端在當前等級判定周期內(nèi)的等級,因此,接收端在當前等級判定周期內(nèi)的等級可表示接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,進而可根據(jù)接收端在當前等級判定周期內(nèi)的接收消息及返回響應的速度,確定是否發(fā)送針對接收端的消息,從而實現(xiàn)了根據(jù)接收端自身的狀態(tài)靈活的發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息的目的;進一步由于若接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將待轉(zhuǎn)發(fā)消息隊列中針對接收端的消息暫停發(fā)送,因此,當接收端由于故障或其它原因?qū)е陆邮障⒓胺祷仨憫乃俣容^慢時,可暫時不發(fā)送針對該接收端的消息,而先發(fā)送其它接收消息及返回響應的速度正常的接收端對應的消息,如此,則避免了由于發(fā)送該接收消息及返回響應的速度較慢的接收端對應的消息導致的長時間占用線程,延遲待轉(zhuǎn)發(fā)消息隊列中的其它消息發(fā)送時間的情況。
      [0269]本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
      [0270]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
      [0271]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
      [0272]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
      [0273]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
      [0274]顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
      【主權項】
      1.一種消息轉(zhuǎn)發(fā)方法,其特征在于,包括: 在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向所述接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息; 確定所述接收端在所述第一時長內(nèi)的至少一個消息的響應時長;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到所述接收端反饋的所述消息對應的響應之間的時長; 根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端在當前等級判定周期內(nèi)的等級; 若所述接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將所述待轉(zhuǎn)發(fā)消息隊列中針對所述接收端的消息暫停發(fā)送; 若所述接收端在當前等級判定周期內(nèi)的等級大于所述第一等級閾值,則在所述第一時長后根據(jù)所述接收端在當前等級判定周期內(nèi)的等級發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息。2.如權利要求1所述的方法,其特征在于,所述在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向所述接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括: 若確定所述接收端在所述上一個等級判定周期的等級不大于所述第一等級閾值,則調(diào)整所述接收端的等級,以使調(diào)整后的所述接收端的等級大于所述第一等級閾值,并根據(jù)調(diào)整后的所述接收端的等級,向所述接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息; 若確定所述接收端在所述上一個等級判定周期的等級大于所述第一等級閾值時,根據(jù)所述接收端在所述上一個等級判定周期的等級,向所述接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。3.如權利要求2所述的方法,其特征在于,所述根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端在當前等級判定周期內(nèi)的等級,具體包括: 根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端中在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值; 若所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值大于響應時長閾值,則確定所述接收端在當前等級判定周期內(nèi)的等級不大于所述第一等級閾值;若所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值不大于響應時長閾值,則確定所述接收端在所述當前等級判定周期內(nèi)的等級大于所述第一等級閾值的等級,且根據(jù)述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值,確定所述接收端在所述當前等級判定周期內(nèi)的等級; 其中,所述接收端的響應時長的平均值越短,所對應的所述接收端的等級越高。4.如權利要求1所述的方法,其特征在于,所述根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端在當前等級判定周期內(nèi)的等級,具體包括: 根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端在當前等級判定周期內(nèi)的等級; 根據(jù)確定的所述接收端在當前等級判定周期內(nèi)的等級,為所述接收端分配所述接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量; 其中,所述接收端在所述當前等級判定周期的等級越高,為所述接收端分配的在當前等級判定周期內(nèi)的等級對應的線程數(shù)量越少。5.如權利要求1所述的方法,其特征在于,所述根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端在當前等級判定周期內(nèi)的等級,具體包括: 針對所述接收端所在的系統(tǒng)所包括的多個接收端中的每個接收端,根據(jù)獲取的所述每個接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述每個接收端在當前等級判定周期內(nèi)的等級; 根據(jù)所述多個接收端中所述每個接收端的等級,對所述系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量;其中,所述預設的范圍的兩個節(jié)點為所述預設范圍的最小值和所述預設范圍的最大值; 根據(jù)所述系統(tǒng)的所述總的線程數(shù)量,為所述每個等級的接收端分配所述每個等級對應的線程數(shù)量。6.如權利要求5所述的方法,其特征在于,所述根據(jù)所述多個接收端中所述每個接收端的等級,對所述系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量,具體包括: 根據(jù)所述多個接收端中每個接收端的等級,通過以下公式計算備選總的線程數(shù)量: 備選總的線程數(shù)量=所述預設范圍的最小值+所述預設范圍的最大值X [(所述多個接收端中的等級大于所述第一等級閾值,且小于第二等級閾值的所有接收端的數(shù)量所述多個接收端的總數(shù)量]; 其中,所述第二等級閾值高于所述第一等級閾值; 若確定所述備選總的線程數(shù)量大于所述預設范圍的最大值,則將所述預設范圍的最大值確定為所述總的線程數(shù)量; 若確定所述備選總的線程數(shù)量小于所述預設范圍的最小值,則將所述預設范圍的最小值確定為所述總的線程數(shù)量; 若確定所述備選總的線程數(shù)量不大于所述預設范圍的最大值,且不小于所述預設范圍的最小值,則將所述備選總的線程數(shù)量確定為所述總的線程數(shù)量。7.如權利要求5所述的方法,其特征在于,所述根據(jù)所述系統(tǒng)的所述總的線程數(shù)量,為所述每個等級的接收端分配所述每個等級對應的線程數(shù)量,具體包括: 針對每個等級,根據(jù)所述系統(tǒng)的所述總的線程數(shù)量,根據(jù)以下公式為該等級的接收端分配該等級對應的備選線程數(shù)量: 該等級對應的備選線程數(shù)量=所述總的線程數(shù)量X (在所述多個接收端中該等級對應的所有接收端的數(shù)量+所述多個接收端的總的數(shù)量); 將該等級對應的備選線程數(shù)量確定為該等級對應的線程數(shù)量;或者根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量。8.如權利要求7所述的方法,其特征在于,所述根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量,具體包括: 對所述每個等級對應的備選線程數(shù)量進行調(diào)整,將調(diào)整后的所述每個等級的備選線程數(shù)量確定為所述每個等級的線程數(shù)量; 其中,針對所述每個等級,所述調(diào)整后的每個等級的備選線程數(shù)量滿足以下條件: 等級越尚,調(diào)整后的該等級的備選線程數(shù)量越少; 所有等級中的所述每個等級對應的線程數(shù)量的總和,等于所有等級中所述每個等級對應的調(diào)整后的備選線程數(shù)量的總和。9.如權利要求4至8任一權利要求所述的方法,其特征在于,所述在所述第一時長后根據(jù)所述接收端在當前等級判定周期內(nèi)的等級發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括: 在所述第一時長后,根據(jù)所述接收端在當前等級判定周期內(nèi)的等級,通過為所述接收端分配的所述接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量對應的線程,向所述接收端發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息。10.如權利要求1所述的方法,其特征在于,所述在所述第一時長后根據(jù)所述接收端在當前等級判定周期內(nèi)的等級發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息,具體包括: 在所述第一時長后根據(jù)所述接收端在當前等級判定周期內(nèi)的等級向所述接收端發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息; 在確定第二時長內(nèi)未接收到所述接收端反饋的所述消息對應的響應時,重發(fā)K次所述待發(fā)送消息;其中,所述K不大于預設重發(fā)次數(shù)閾值;其中,K越大,第K次重發(fā)與第(K-1)次重發(fā)之間的時間間隔越大; 在確定接收到所述接收端反饋的所述消息對應的響應時,確定所述消息發(fā)送成功,在確定K等于所述預設重發(fā)次數(shù)閾值時,確定消息發(fā)送失敗。11.如權利要求1所述的方法,其特征在于,還包括: 在確定所述當前時刻達到當前消息隊列獲取周期時,從數(shù)據(jù)庫中獲取初始消息隊列;其中,消息隊列獲取周期大于等級判定周期; 確定出在所述當前時刻對應的等級判定周期內(nèi),等級不大于所述第一等級閾值的接收端; 將確定出的所述等級不大于所述第一等級閾值的接收端對應的消息,從所述初始消息隊列中移出; 將進行移出操作之后所得到的初始消息隊列,確定為新的待轉(zhuǎn)發(fā)消息隊列。12.如權利要求1所述的方法,其特征在于,所述接收端在上一個等級判定周期內(nèi)的等級越高,則所述接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長越短。13.如權利要求12所述的方法,其特征在于,所述接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長= LX2S 其中,L為所述接收端在上一個等級判定周期內(nèi)的等級。14.一種消息轉(zhuǎn)發(fā)設備,其特征在于,包括: 第一發(fā)送單元,用于在確定當前時刻到達等級判定周期時,在第一時長內(nèi)根據(jù)接收端在上一個等級判定周期的等級,向所述接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息; 確定單元,用于確定所述接收端在所述第一時長內(nèi)的至少一個消息的響應時長;根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端在當前等級判定周期內(nèi)的等級;其中,一個消息的響應時長為從向接收端發(fā)送消息,至接收到所述接收端反饋的所述消息對應的響應之間的時長; 第二發(fā)送單元,用于若所述接收端在當前等級判定周期內(nèi)的等級不大于第一等級閾值,則將所述待轉(zhuǎn)發(fā)消息隊列中針對所述接收端的消息暫停發(fā)送; 若所述接收端在當前等級判定周期內(nèi)的等級大于所述第一等級閾值,則在所述第一時長后根據(jù)所述接收端在當前等級判定周期內(nèi)的等級發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息。15.如權利要求14所述的設備,其特征在于,所述第一發(fā)送單元,具體用于: 若確定所述接收端在所述上一個等級判定周期的等級不大于所述第一等級閾值,則調(diào)整所述接收端的等級,以使調(diào)整后的所述接收端的等級大于所述第一等級閾值,并根據(jù)調(diào)整后的所述接收端的等級,向所述接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息; 若確定所述接收端在所述上一個等級判定周期的等級大于所述第一等級閾值時,根據(jù)所述接收端在所述上一個等級判定周期的等級,向所述接收端發(fā)送待轉(zhuǎn)發(fā)消息隊列中的消息。16.如權利要求15所述的設備,其特征在于,所述確定單元,具體用于: 根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端中在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值; 若所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值大于響應時長閾值,則確定所述接收端在當前等級判定周期內(nèi)的等級不大于所述第一等級閾值;若所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值不大于響應時長閾值,則確定所述接收端在所述當前等級判定周期內(nèi)的等級大于所述第一等級閾值的等級,且根據(jù)述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長的平均值,確定所述接收端在所述當前等級判定周期內(nèi)的等級; 其中,所述接收端的響應時長的平均值越短,所對應的所述接收端的等級越高。17.如權利要求14所述的設備,其特征在于,所述確定單元,具體用于: 根據(jù)獲取的所述接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述接收端在當前等級判定周期內(nèi)的等級; 根據(jù)確定的所述接收端在當前等級判定周期內(nèi)的等級,為所述接收端分配所述接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量; 其中,所述接收端在所述當前等級判定周期的等級越高,為所述接收端分配的在當前等級判定周期內(nèi)的等級對應的線程數(shù)量越少。18.如權利要求14所述的設備,其特征在于,所述確定單元,具體用于: 針對所述接收端所在的系統(tǒng)所包括的多個接收端中的每個接收端,根據(jù)獲取的所述每個接收端在所述第一時長內(nèi)的所述至少一個消息的響應時長,確定所述每個接收端在當前等級判定周期內(nèi)的等級; 根據(jù)所述多個接收端中所述每個接收端的等級,對所述系統(tǒng)的初始總的線程數(shù)量在預設的范圍內(nèi)進行調(diào)整,得到總的線程數(shù)量;其中,所述預設的范圍的兩個節(jié)點為所述預設范圍的最小值和所述預設范圍的最大值; 根據(jù)所述系統(tǒng)的所述總的線程數(shù)量,為所述每個等級的接收端分配所述每個等級對應的線程數(shù)量。19.如權利要求18所述的設備,其特征在于,所述確定單元,具體用于: 根據(jù)所述多個接收端中每個接收端的等級,通過以下公式計算備選總的線程數(shù)量: 備選總的線程數(shù)量=所述預設范圍的最小值+所述預設范圍的最大值X [(所述多個接收端中的等級大于所述第一等級閾值,且小于第二等級閾值的所有接收端的數(shù)量所述多個接收端的總數(shù)量]; 其中,所述第二等級閾值高于所述第一等級閾值; 若確定所述備選總的線程數(shù)量大于所述預設范圍的最大值,則將所述預設范圍的最大值確定為所述總的線程數(shù)量; 若確定所述備選總的線程數(shù)量小于所述預設范圍的最小值,則將所述預設范圍的最小值確定為所述總的線程數(shù)量; 若確定所述備選總的線程數(shù)量不大于所述預設范圍的最大值,且不小于所述預設范圍的最小值,則將所述備選總的線程數(shù)量確定為所述總的線程數(shù)量。20.如權利要求18所述的設備,其特征在于,所述確定單元,具體用于: 針對每個等級,根據(jù)所述系統(tǒng)的所述總的線程數(shù)量,根據(jù)以下公式為該等級的接收端分配該等級對應的備選線程數(shù)量: 該等級對應的備選線程數(shù)量=所述總的線程數(shù)量X (在所述多個接收端中該等級對應的所有接收端的數(shù)量+所述多個接收端的總的數(shù)量); 將該等級對應的備選線程數(shù)量確定為該等級對應的線程數(shù)量;或者根據(jù)每個等級對應的備選線程數(shù)量,確定每個等級對應的線程數(shù)量。21.如權利要求20所述的設備,其特征在于,所述確定單元,具體用于: 對所述每個等級對應的備選線程數(shù)量進行調(diào)整,將調(diào)整后的所述每個等級的備選線程數(shù)量確定為所述每個等級的線程數(shù)量; 其中,針對所述每個等級,所述調(diào)整后的每個等級的備選線程數(shù)量滿足以下條件: 等級越尚,調(diào)整后的該等級的備選線程數(shù)量越少; 所有等級中的所述每個等級對應的線程數(shù)量的總和,等于所有等級中所述每個等級對應的調(diào)整后的備選線程數(shù)量的總和。22.如權利要求17至21任一權利要求所述的設備,其特征在于,所述第二發(fā)送單元,具體用于: 在所述第一時長后,根據(jù)所述接收端在當前等級判定周期內(nèi)的等級,通過為所述接收端分配的所述接收端在當前等級判定周期內(nèi)的等級對應的線程數(shù)量對應的線程,向所述接收端發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息。23.如權利要求14所述的設備,其特征在于,所述第二發(fā)送單元,具體用于: 在所述第一時長后根據(jù)所述接收端在當前等級判定周期內(nèi)的等級向所述接收端發(fā)送所述待轉(zhuǎn)發(fā)消息隊列中的消息; 在確定第二時長內(nèi)未接收到所述接收端反饋的所述消息對應的響應時,重發(fā)K次所述待發(fā)送消息;其中,所述K不大于預設重發(fā)次數(shù)閾值;其中,K越大,第K次重發(fā)與第(K-1)次重發(fā)之間的時間間隔越大; 在確定接收到所述接收端反饋的所述消息對應的響應時,確定所述消息發(fā)送成功,在確定K等于所述預設重發(fā)次數(shù)閾值時,確定消息發(fā)送失敗。24.如權利要求14所述的設備,其特征在于,還包括獲取單元,用于: 在確定所述當前時刻達到當前消息隊列獲取周期時,從數(shù)據(jù)庫中獲取初始消息隊列;其中,消息隊列獲取周期大于等級判定周期; 確定出在所述當前時刻對應的等級判定周期內(nèi),等級不大于所述第一等級閾值的接收端; 將確定出的所述等級不大于所述第一等級閾值的接收端對應的消息,從所述初始消息隊列中移出; 將進行移出操作之后所得到的初始消息隊列,確定為新的待轉(zhuǎn)發(fā)消息隊列。25.如權利要求14所述的設備,其特征在于,所述接收端在上一個等級判定周期內(nèi)的等級越高,則所述接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長越短。26.如權利要求25所述的設備,其特征在于,所述接收端的上一個等級判定周期的開始時刻與當前等級判定周期的開始時刻之間的時長= LX2S 其中,L為所述接收端在上一個等級判定周期內(nèi)的等級。
      【文檔編號】H04L29/08GK105933369SQ201510987875
      【公開日】2016年9月7日
      【申請日】2015年12月24日
      【發(fā)明人】卞凱, 冀乃庚, 傅宜生, 田豐
      【申請人】中國銀聯(lián)股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1