案例1
業務場景
人工智慧領域的語義識別與自動對話將是未來服務業機器人應答呼叫體系中的重要技術,百度自研使用者評價語義識別服務,免費開放給企業試用,同時訓練百度自己的模型。現對試用使用者的使用行為進行限速,限制每個使用者每分鐘最多發起10次呼叫
解決方案
- 設計計數器,記錄呼叫次數,用於控制業務執行次數。以使用者id作為key,使用次數作為value
- 在呼叫前獲取次數,判斷是否超過限定次數
- 不超過次數的情況下,每次呼叫計數+1
- 業務呼叫失敗,計數-1
為計數器設定生命週期為指定週期,例如1秒/分鐘,自動清空週期內使用次數
解決方案改良
- 取消最大值的判定,利用incr操作超過最大值丟擲異常的形式替代每次判斷是否大於最大值
- 判斷是否為nil,
- 如果是,設定為Max-次數
- 如果不是,計數+1
- 業務呼叫失敗,計數-1
- 遇到異常即+操作超過上限,視為使用達到上限
Tips1:
- redis應用於限時按次結算的服務控制
案例2
業務場景
- 使用微信的過程中,當微信接收訊息後,會預設將最近接收的訊息置頂,當多個好友及關注的訂閱號同時傳送訊息時,該排序會不停的進行交替。同時還可以將重要的會話設定為置頂。一旦使用者離線後,再次開啟微信時,訊息該按照什麼樣的順序顯示?
解決方案
努力編碼中
本作品採用《CC 協議》,轉載必須註明作者和本文連結