亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

客服分配并發場景,怎么設計比較好?

客服分配并發場景,怎么設計比較好?

慕少森 2019-04-10 20:48:43
請教一個客服場景下的并發解決方案。假設1個客服可以服務10個用戶,然后有10個客服。1.客服登錄,用戶請求分配客服,如果客服都在忙,則返回排隊號,等有客服空閑時,則分配給排隊隊列隊首的用戶。2.客服隨時會登錄,退出。用戶隨時會加入,放棄排隊。3.客服服應該平均分配,比如10個用戶進來,應該是每個客服服務一個。Q:1.請問下這個隊列怎么設計比較好?2.java中用什么并發集合比較合適?
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

我寫一下大概的想法吧...
每個客服都是一個單獨的對象,這個對象上面存客服數據(工號,窗口號等等),還存一個正在處理的用戶對象(暫時存著,目前還想不到是否有必要..)
所有等待的用戶存在一個有序列表里(比如linkedList).
寫一個管理器.管理所有客服對象和用戶列表.
這個管理器里加一個定時器.每隔幾秒就調用一下用戶分配的方法.
這個方法里遍歷所有客服對象.檢查當前客服服務的用戶數量,如果不滿10個就從用戶列表里取出一個加上.(這里可以增加一些判斷,比如,記錄一下最少的客服服務用戶的數量,如果后面的客服有超過這個數量,就不分配給他新用戶,而是等到下次調用這個方法的時候分配給服務用戶少的客服..大概是這個意思,這樣實現你的平均分配.ps:你也可以每次調用這個方法完最后給客服按照服務數量排序.這個方法是分配的核心代碼.)
集合的選用,選擇有序的就行,不管是否同步,不同步的話,自己在外部加鎖就可以了,并沒有什么大的消耗.
另一種方案是..每個客服處理完之后自己去隊列里要用戶,但是那個方案不太好控制平均分配,寫出來的代碼會比較怪,客服不僅要去要用戶,還要去看別的客服處理的用戶數量來判斷自己要多少用戶...很怪異..所以這個方案我倒是還沒想到怎么弄...
                            
查看完整回答
反對 回復 2019-04-10
  • 2 回答
  • 0 關注
  • 335 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號