本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種基于redis的排隊方法和系統(tǒng)。
背景技術(shù):
在在線客服系統(tǒng)中,最核心的業(yè)務除了即時消息通訊外還有對訪客會話請求的排隊業(yè)務,傳統(tǒng)的對訪客會話請求的排隊業(yè)務是將排隊業(yè)務程序部署在單個服務器的內(nèi)存中,并在內(nèi)存中存儲與訪客會話請求對應的信息,內(nèi)存只在單個服務器內(nèi)時有效,內(nèi)存中的排隊業(yè)務程序不共享且不可分割,信息在內(nèi)存中時才能對訪客會話請求進行排隊,無法進行分布式部署;當訪客會話請求量增加時,單個服務器的處理能力低,用戶體驗度差;單個服務器宕機時排隊業(yè)務中斷,造成處理排隊業(yè)務的系統(tǒng)穩(wěn)定性差;排隊機無法單獨部署;排隊過程只是從內(nèi)存中獲取一個訪客會話請求,首選第一個客服端作為匹配客服端,此方式使得客服人員眾多時每個客服的工作量不平衡。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種基于redis的排隊方法和系統(tǒng)。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種基于redis的排隊方法,包括如下步驟:
s1,接收訪客端發(fā)送的訪客會話請求,根據(jù)訪客會話請求生成請求id,在預先創(chuàng)建的排隊列表中插入請求id;
s2,根據(jù)訪客會話請求獲取曾服務客服列表,獲取所有客服端的當前服務會話列表和當日已服務會話列表;
s3,獲取所有在線客服id,根據(jù)所有在線客服id和曾服務客服列表確定在線曾服務客服列表,根據(jù)所有在線客服id、所有當前服務會話列表和當日已服務會話列表分別確定所有在線客服端的在線當前服務會話列表和在線當日已服務會話列表;
s4,從排隊列表中取出一個請求id,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
本發(fā)明的有益效果是:通過根據(jù)訪客會話請求生成請求id,并將請求id插入排隊列表中,實現(xiàn)分布式部署,提升業(yè)務處理的能力和穩(wěn)定性,提高用戶體驗度。通過曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為取出的一個請求id確定匹配客戶端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進:
進一步,所述s4步驟包括:
s41,從排隊列表中取出一個請求id;
s42,判斷在線曾服務客服列表中是否有數(shù)據(jù),是則執(zhí)行s44,否則執(zhí)行s43;
s43,根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端;
s44,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
進一步,所述s43步驟包括:
s431,根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
s432,根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
s433,根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
s434,對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
進一步,所述s44步驟包括:
s441,根據(jù)在線曾服務客服列表中的總服務次數(shù)和每個在線客服端的服務次數(shù)計算得到在線曾服務客服列表中每個在線客服端的曾服務比例;
s442,根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
s443,根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
s444,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表中每個在線客服端的曾服務比例、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
s445,對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
進一步,所述s1步驟包括:
s11,接收至少一個訪客端發(fā)送的至少一個訪客會話請求;
s12,根據(jù)至少一個訪客會話請求生成至少一個請求id;
s13,按照接收至少一個訪客會話請求的順序在預先創(chuàng)建的排隊列表中依次插入所述至少一個請求id中的每個請求id。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種基于redis的排隊系統(tǒng),包括:
排隊模塊,用于接收訪客端發(fā)送的訪客會話請求,根據(jù)訪客會話請求生成請求id,在預先創(chuàng)建的排隊列表中插入請求id;
獲取模塊,用于根據(jù)訪客會話請求獲取曾服務客服列表,獲取所有客服端的當前服務會話列表和當日已服務會話列表;
確定模塊,用于獲取所有在線客服id,根據(jù)所有在線客服id和曾服務客服列表確定在線曾服務客服列表,根據(jù)所有在線客服id、所有當前服務會話列表和當日已服務會話列表分別確定所有在線客服端的在線當前服務會話列表和在線當日已服務會話列表;
匹配模塊,用于從排隊列表中取出一個請求id,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
本發(fā)明的有益效果是:通過根據(jù)訪客會話請求生成請求id,并將請求id插入排隊列表中,實現(xiàn)分布式部署,提升業(yè)務處理的能力和穩(wěn)定性,提高用戶體驗度。通過曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為取出的一個請求id確定匹配客戶端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進:
進一步,所述匹配模塊包括:
取出模塊,用于從排隊列表中取出一個請求id;
判斷模塊,用于判斷在線曾服務客服列表中是否有數(shù)據(jù),是則調(diào)用第二匹配模塊,否則調(diào)用第一匹配模塊;
第一匹配模塊,用于根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端;
第二匹配模塊,用于根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
進一步,所述第一匹配模塊包括:
第一首計算模塊,用于根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
第一再計算模塊,用于根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
第一終計算模塊,用于根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
第一匹配確定模塊,用于對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
進一步,所述第二匹配模塊包括:
第二首計算模塊,用于根據(jù)在線曾服務客服列表中的總服務次數(shù)和每個在線客服端的服務次數(shù)計算得到在線曾服務客服列表中每個在線客服端的曾服務比例;
第二再計算模塊,用于根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
第二又計算模塊,用于根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
第二終計算模塊,用于根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表中每個在線客服端的曾服務比例、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
第二匹配確定模塊,用于對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
進一步,所述排隊模塊包括:
接收模塊,用于接收至少一個訪客端發(fā)送的至少一個訪客會話請求;
生成模塊,用于根據(jù)至少一個訪客會話請求生成至少一個請求id;
插入模塊,用于按照接收至少一個訪客會話請求的順序在預先創(chuàng)建的排隊列表中依次插入所述至少一個請求id中的每個請求id。
附圖說明
圖1為本發(fā)明一實施例提供的基于redis的排隊方法的流程示意圖;
圖2為本發(fā)明另一實施例提供的基于redis的排隊方法中步驟4的流程示意圖;
圖3為本發(fā)明一實施例提供的基于redis的排隊系統(tǒng)的結(jié)構(gòu)示意圖;
圖4為本發(fā)明另一實施例提供的基于redis的排隊系統(tǒng)中匹配模塊的結(jié)構(gòu)示意圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,本發(fā)明實施例提供的基于redis的排隊方法,包括如下步驟:
s1,接收訪客端發(fā)送的訪客會話請求,根據(jù)訪客會話請求生成請求id,在預先創(chuàng)建的排隊列表中插入請求id;
s2,根據(jù)訪客會話請求獲取曾服務客服列表,獲取所有客服端的當前服務會話列表和當日已服務會話列表;
s3,獲取所有在線客服id,根據(jù)所有在線客服id和曾服務客服列表確定在線曾服務客服列表,根據(jù)所有在線客服id、所有當前服務會話列表和當日已服務會話列表分別確定所有在線客服端的在線當前服務會話列表和在線當日已服務會話列表;
s4,從排隊列表中取出一個請求id,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
本發(fā)明實施例提供的基于redis的排隊方法,通過根據(jù)訪客會話請求生成請求id,并將請求id插入排隊列表中,實現(xiàn)分布式部署,提升業(yè)務處理的能力和穩(wěn)定性,提高用戶體驗度。通過曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為取出的一個請求id確定匹配客戶端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
如圖2所示,本發(fā)明實施例提供的基于redis的排隊方法,在上一實施例的基礎(chǔ)上,所述s4步驟包括:
s41,從排隊列表中取出一個請求id;
s42,判斷在線曾服務客服列表中是否有數(shù)據(jù),是則執(zhí)行s44,否則執(zhí)行s43;
s43,根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端;
s44,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
該實施例中,按照先插入先取出方式取出請求id,以實現(xiàn)排隊的公平性。
該實施例中,接收訪客端發(fā)送的訪客會話請求的同時還接收與訪客會話請求對應的信息,所述信息存入哈希實體中,當取出一個請求id且確定匹配客服端時從哈希實體中取出該信息,根據(jù)該信息建立訪客端和匹配客服端的會話。
該實施例中,所述曾服務客服列表可以包括如下內(nèi)容:從當前時刻起到一個月前之間的所有曾為訪客端服務過的客服端的客服id和客服端工號。為每個訪客端設(shè)置總曾服務客服列表,當訪客端被一個客服端服務后,在當日向?qū)儆谠撛L客端的總曾服務客服列表中插入此客服id和客服端工號。曾服務客服列表根據(jù)當前時刻和一個月期限從總曾服務客服列表獲取得到,且在訪客端與客服端建立會話后刪除該曾服務客服列表,曾服務客服列表的列表名稱可以為訪客id。
對每個客服端建立當前服務會話列表,當前服務會話列表的列表名稱可以為客服id,并在一個客服端與訪客端建立會話后將該會話的會話id插入到屬于所述一個客服端的當前服務會話列表中,在該會話結(jié)束時將該會話id從屬于一個客服端的當前服務會話列表中刪除,實時更新屬于每個客服端的當前服務會話列表。一個客服端可以與多個訪客端同時建立會話。當前服務會話列表中始終包括客服id。
對每個客服端建立當日已服務會話列表,當日已服務會話列表的列表名稱可以為客服id,并在一個客服端與訪客端完成一次會話時,將此會話的會話id插入到屬于一個客服端的當天的當日已服務會話列表中,實時更新屬于每個客服端的當日已服務會話列表。當日已服務會話列表始終包括客服id。
由于某些訪客端可能是第一次使用本發(fā)明實施例提供的基于redis的排隊方法,因而屬于某些訪客端的曾服務客服列表是沒有任何數(shù)據(jù)的,因而執(zhí)行s42步驟。
該實施例中,曾服務權(quán)重、當前服務權(quán)重和當日已服務權(quán)重均是預設(shè)的。當前服務權(quán)重、曾服務權(quán)重和當日已服務權(quán)重的權(quán)重值依次降低。優(yōu)選地,預先設(shè)置當前服務權(quán)重為0.5,預先設(shè)置曾服務權(quán)重為0.3,預先設(shè)置當日已服務權(quán)重為0.2。當前服務權(quán)重設(shè)置最高是由于它表征的是當前時刻每個客服端服務的會話總量,當一個客服端的當前時刻會話總量過少時,該一個客服端應更優(yōu)先于其他客服端成為與匹配客服端,每個客服的工作量才能更均衡。曾服務權(quán)重設(shè)置次高是由于它表征的是發(fā)送訪客會話請求的訪客端被某個客服端的服務次數(shù),當在一定期限內(nèi)一個客服端的服務次數(shù)比較高時,說明訪客端更易于與該一個客服端溝通,因而該一個客服端應更優(yōu)先于其他客服端成為匹配客服端,用戶的體驗效果才會更好。當日已服務權(quán)重表征的是當日每個客服端已服務的會話總量,當一個客服端的當日已服務會話總量過少時,該一個客服端應更優(yōu)先于其他客服端成為匹配客服端,每個客服的工作量才能更均衡。
本發(fā)明實施例提供的基于redis的排隊方法,通過判斷在線曾服務客服列表中是否有數(shù)據(jù),進而在有數(shù)據(jù)時采用一種方式為取出的一個請求id確定匹配客服端,在無數(shù)據(jù)時采用另一種方式為取出的一個請求id確定匹配客服端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
可選地,本發(fā)明實施例中,所述s43步驟包括:
s431,根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
s432,根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
s433,根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
s434,對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
該實施例中,獲取每個在線客服端的當前服務會話數(shù)值是通過每個在線客服端的在線當前服務會話列表中的會話id個數(shù)確定。獲取每個在線客服端的當日已服務會話數(shù)值是通過每個在線客服端的在線當日已服務會話列表中的會話id個數(shù)確定。第一預設(shè)值是根據(jù)客服端當前最多服務的會話個數(shù)而預先設(shè)定的,是固定值。第二預設(shè)值是根據(jù)客服端當日最多已服務的會話個數(shù)而預先設(shè)定的,是固定值。將每個在線客服端的當前服務會話數(shù)值比上第一預設(shè)值得到每個在線客服端的當前服務會話比例;將每個在線客服端的當日已服務會話數(shù)值比上第二預設(shè)值得到每個在線客服端的當日已服務會話比例。
s433步驟具體為:將每個在線客服端的當前服務會話比例與當前服務權(quán)重的乘積,再加上每個在線客服端的當日已服務會話比例與當日已服務權(quán)重的乘積,得到所有在線客服端的分值。
上述實施例中,通過當前服務權(quán)重、當日已服務權(quán)重、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算所有在線客服端的分值,根據(jù)分值大小確定匹配客服端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
可選地,本發(fā)明實施例中,所述s44步驟包括:
s441,根據(jù)在線曾服務客服列表中的總服務次數(shù)和每個在線客服端的服務次數(shù)計算得到在線曾服務客服列表中每個在線客服端的曾服務比例;
s442,根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
s443,根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
s444,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表中每個在線客服端的曾服務比例、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
s445,對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
該實施例中,所述s441步驟具體為:在線曾服務客服列表是記錄一定期限內(nèi)所有曾為訪客端服務過的在線客服端的客服id和客服端工號,根據(jù)在線曾服務客服列表中客服id計算出每個在線客服端的服務次數(shù),將每個在線客服端的服務次數(shù)分別比上在線曾服務客服列表中的所有在線客服端的總服務次數(shù)得到在線曾服務客服列表中每個在線客服端的曾服務比例。
所述s444步驟具體為:將在線曾服務客服列表中每個在線客服端的曾服務比例與曾服務權(quán)重的乘積,加上當前服務權(quán)重與每個在線客服端的當前服務會話比例的乘積,再加上當日已服務權(quán)重與每個在線客服端的當日已服務會話比例的乘積,計算得到所有在線客服端的分值。
上述實施例中,通過曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表中每個在線客服端的曾服務比例、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算所有在線客服端的分值,根據(jù)分值大小確定匹配客服端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
可選地,本發(fā)明實施例中,所述s1步驟包括:
s11,接收至少一個訪客端發(fā)送的至少一個訪客會話請求;
s12,根據(jù)至少一個訪客會話請求生成至少一個請求id;
s13,按照接收至少一個訪客會話請求的順序在預先創(chuàng)建的排隊列表中依次插入所述至少一個請求id中的每個請求id。
該實施例中,訪客端發(fā)送的訪客會話請求在時間上是有差異性的,因而接收訪客會話請求也是有時間順序的,且在預先創(chuàng)建的排隊列表中插入根據(jù)訪客會話請求生成的請求id也是有順序的,插入請求id的順序與接收訪客會話請求的順序相同。
上述實施例中,通過在排隊列表中插入請求id的順序與接收訪客會話請求的順序相同,實現(xiàn)有序地首排隊,分布式部署,提升業(yè)務處理的能力和穩(wěn)定性,提高用戶體驗度。
可選地,本發(fā)明實施例中,在所述s1步驟前還包括s0步驟,所述s0步驟包括:在集群服務器中搭建分布式環(huán)境。
可選地,本發(fā)明實施例中,所述預先創(chuàng)建的排隊列表是售前排隊列表。
該實施例中,訪客會話請求帶有售前標識,根據(jù)帶有售前標識的訪客會話請求生成請求id,根據(jù)售前標識將請求id插入到售前排隊列表中。應用基于redis的排隊方法為售前排隊列表中的請求id確定匹配客服端。
可選地,本發(fā)明實施例中,所述預先創(chuàng)建的排隊列表是售后排隊列表。
該實施例中,訪客會話請求帶有售后標識,根據(jù)帶有售后標識的訪客會話請求生成請求id,根據(jù)售后標識將請求id插入到售后排隊列表中。應用基于redis的排隊方法為售后排隊列表中的請求id確定匹配客服端。
上述實施例中,通過排隊列表設(shè)置為售前排隊列表或售后排隊列表,在售前組和售后組均應用基于redis的排隊方法,實現(xiàn)分布式部署,提升業(yè)務處理的能力和穩(wěn)定性,提高用戶體驗度,均衡每個客服的工作量,消除因售前組和售后組的客服端不同而造成的排隊差異。
如圖3所示,本發(fā)明實施例提供的基于redis的排隊系統(tǒng),包括:
排隊模塊,用于接收訪客端發(fā)送的訪客會話請求,根據(jù)訪客會話請求生成請求id,在預先創(chuàng)建的排隊列表中插入請求id;
獲取模塊,用于根據(jù)訪客會話請求獲取曾服務客服列表,獲取所有客服端的當前服務會話列表和當日已服務會話列表;
確定模塊,用于獲取所有在線客服id,根據(jù)所有在線客服id和曾服務客服列表確定在線曾服務客服列表,根據(jù)所有在線客服id、所有當前服務會話列表和當日已服務會話列表分別確定所有在線客服端的在線當前服務會話列表和在線當日已服務會話列表;
匹配模塊,用于從排隊列表中取出一個請求id,根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
本發(fā)明實施例提供的基于redis的排隊系統(tǒng),通過根據(jù)訪客會話請求生成請求id,并將請求id插入排隊列表中,實現(xiàn)分布式部署,提升業(yè)務處理的能力和穩(wěn)定性,提高用戶體驗度。通過曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為取出的一個請求id確定匹配客戶端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
如圖4所示,本發(fā)明實施例提供的基于redis的排隊系統(tǒng),在上一實施例的基礎(chǔ)上,所述匹配模塊包括:
取出模塊,用于從排隊列表中取出一個請求id;
判斷模塊,用于判斷在線曾服務客服列表中是否有數(shù)據(jù),是則調(diào)用第二匹配模塊,否則調(diào)用第一匹配模塊;
第一匹配模塊,用于根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端;
第二匹配模塊,用于根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表、在線當前服務會話列表和在線當日已服務會話列表為所述一個請求id確定匹配客服端。
本發(fā)明實施例提供的基于redis的排隊系統(tǒng),通過判斷在線曾服務客服列表中是否有數(shù)據(jù),進而在有數(shù)據(jù)時采用一種方式為取出的一個請求id確定匹配客服端,在無數(shù)據(jù)時采用另一種方式為取出的一個請求id確定匹配客服端,實現(xiàn)了均衡每個客服的工作量,實現(xiàn)業(yè)務處理的可擴展性。
可選地,本發(fā)明實施例中,所述第一匹配模塊包括:
第一首計算模塊,用于根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
第一再計算模塊,用于根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
第一終計算模塊,用于根據(jù)預設(shè)的當前服務權(quán)重、當日已服務權(quán)重、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
第一匹配確定模塊,用于對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
可選地,本發(fā)明實施例中,所述第二匹配模塊包括:
第二首計算模塊,用于根據(jù)在線曾服務客服列表中的總服務次數(shù)和每個在線客服端的服務次數(shù)計算得到在線曾服務客服列表中每個在線客服端的曾服務比例;
第二再計算模塊,用于根據(jù)每個在線客服端的在線當前服務會話列表獲取每個在線客服端的當前服務會話數(shù)值,根據(jù)每個在線客服端的當前服務會話數(shù)值和第一預設(shè)值計算得到每個在線客服端的當前服務會話比例;
第二又計算模塊,用于根據(jù)每個在線客服端的在線當日已服務會話列表獲取每個在線客服端的當日已服務會話數(shù)值,根據(jù)每個在線客服端的當日已服務會話數(shù)值和第二預設(shè)值計算得到每個在線客服端的當日已服務會話比例;
第二終計算模塊,用于根據(jù)預設(shè)的曾服務權(quán)重、當前服務權(quán)重、當日已服務權(quán)重、在線曾服務客服列表中每個在線客服端的曾服務比例、每個在線客服端的當前服務會話比例和每個在線客服端的當日已服務會話比例計算得到所有在線客服端的分值;
第二匹配確定模塊,用于對所有在線客服端的分值進行排序,確定得分最高的在線客服端,所述得分最高的在線客服端即為所述一個請求id的匹配客服端。
可選地,本發(fā)明實施例中,所述排隊模塊包括:
接收模塊,用于接收至少一個訪客端發(fā)送的至少一個訪客會話請求;
生成模塊,用于根據(jù)至少一個訪客會話請求生成至少一個請求id;
插入模塊,用于按照接收至少一個訪客會話請求的順序在預先創(chuàng)建的排隊列表中依次插入所述至少一個請求id中的每個請求id。
該實施例提供的基于redis的排隊系統(tǒng)中各個模塊所執(zhí)行的功能已經(jīng)在上述實施例提供的基于redis的排隊方法中做了詳細的介紹,在此不再贅述。
本發(fā)明所有實施例將單個服務器中的內(nèi)存設(shè)置為集群式服務器中的分布式內(nèi)存,單獨部署基于redis的排隊系統(tǒng),使用基于redis的排隊系統(tǒng)對訪客會話請求排隊并確定匹配客服端,基于redis的排隊系統(tǒng)是獨立的,可不斷擴展,基于redis的排隊系統(tǒng)的業(yè)務處理的能力增強。本發(fā)明所有實施例均應用在在線客服系統(tǒng)中,在線客服系統(tǒng)對訪客會話請求排隊,優(yōu)先取出先插入的訪客會話請求,為先插入的訪客會話請求匹配客服端,然后此匹配客服端即與訪客端建立會話,該訪客端是發(fā)送先插入的訪客會話請求的訪客端,會話建立后訪客端和客服端即可開始即時消息通訊。
redis是一個開源的使用ansic語言編寫、支持網(wǎng)絡、可基于內(nèi)存亦可持久化的日志型、key-value數(shù)據(jù)庫,即分布式緩存。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。