我正在使用Azure WebJobs作爲工作項目的一部分。這些配置爲連續運行的作業,用於監視多個不同的隊列。當接收到隊列消息時,它們會導致運行各種API命令。我遇到的問題是一些API命令運行速度很快(即幾秒鐘),有些運行速度很慢(幾分鐘),我不確定在WebJobs之間如何最好地分割隊列處理程序。Azure WebJobs在監視多個隊列時如何區分消息的優先級?
例如,我可以將所有緩慢的API命令處理程序放入一個WebJob中,並將所有快速處理程序放入不同的WebJob中。我擔心的是,「慢速」WebJob進程總是很忙,而「快速」WebJob進程大部分時間都是空閒的。
另一種方法是在同一個WebJob項目中混合快速和慢速處理程序。我對此的擔憂是,處理速度較快的處理者會讓較慢的關注者捱餓,反之亦然。
第三種方法是爲每個單獨的消息處理程序分別創建一個WebJob,但考慮到我們必須處理的消息類型的數量,我寧願不沿着這條路線走。老實說,這似乎也是矯枉過正。
我想知道是否有人遇到過類似的情況,並且可以提供有關Azure WebJobs如何選擇在監視多個隊列時處理哪些消息的任何見解?許多互聯網搜索未能在這方面提供任何指導或幫助。要清楚的是,我並不是真的認同認爲最好;我正在尋找真正解決這類問題的人的答案,並且可以在某種程度上確定哪些不同的方法是最好的,因爲Azure WebJobs API當前優先處理隊列消息。