簡體   English   中英

使用 Bot 框架在 MS 團隊中同時發送多個主動消息

[英]Sending Multiple Proactive Messages in MS teams, using Bot framework, at the exact same time

我們正在使用網絡作業向所有用戶發送通知。 但問題是並非每個人都同時收到通知。 假設我們必須向 3000 個用戶發送通知,那么第一個和最后一個用戶之間的時間間隔將超過一個小時。

有沒有更好的解決方案,我可以像“QBot”在 Teams 中所做的那樣,同時向所有人發送通知。

謝謝。

如果您必須一個一個地發送通知,則不可能同時將它們發送給所有用戶。 但是,您可以縮小差距,但這取決於您擁有的用戶數量,這可能是也可能不是一件容易的事。

節流

當然,您需要考慮節流。 就像@Nikitha-MSFT 在評論中所說的那樣,一旦達到速率限制,您就會開始收到 HTTP 429 錯誤。 您需要正確處理它們並重試失敗的通知。

正確的並行度

您需要一個可擴展的網絡作業。 也就是說,您的 webjob 可能會被觸發並同時處理多個批次。 例如,將您的 webjob 更改為消息隊列觸發(如果不是),以便它可以處理多個隊列消息,每個消息同時包含一個或多個通知。

例如,您可以有兩個 webjobs:

WebJob A - 由定時器/HTTP 請求觸發,查找所有用戶需要通知並為找到的每個用戶創建隊列消息

WebJob B - 由隊列觸發,處理消息並發送通知

每個作業主機最多可以異步處理 32 個隊列消息 因此理論上,您可以在每個作業主機上同時發送 32 批通知。

假設到目前為止您還沒有達到限制,那么您可以開始考慮增加資源:

向外擴展

每個應用服務都有一個 webjob 主機。 您可以擴展您的應用服務以擁有多個實例以獲得更多作業主機實例。 您擁有的實例越多,您清除隊列中的消息的速度就越快,因此您可以越快地發送通知。

放大

也有可能,您可能會像這篇文章一樣遇到應用服務計划的瓶頸。 此時,您需要考慮將您的計划升級到另一層以獲得更多功能,例如 CPU。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM