示例代碼Azure Worker角色異步接收消息:我應該睡多久? (毫秒)這裏
public override void Run()
{
while (true)
{
IAsyncResult result = CUDClient.BeginReceive(TimeSpan.FromSeconds(10), OnMessageReceive, CUDClient);
Thread.Sleep(10000);
}
}
我已經測試了這個Azure的輔助角色。我在服務總線隊列中保留了100條消息。它將實體更新作爲操作(實體框架)。處理所有隊列需要15分鐘,看起來花費的時間更長。任何改善這個問題的建議?
在此先感謝
IAsyncResult result = CUDClient.BeginReceive(OnMessageReceive,CUDClient); while(true){};執行100msgs到30秒。它是我所有嘗試中速度最快的。但是有一個問題會影響CPU性能? – sivaL
以獲得更好的CPU性能,請使用TimeSpan.MaxValue嘗試Thread.Sleep。 – NavaRajan
不可以。它應該是Thread.Sleep(Timeout.Infinite);如果我們像這樣離開While(true){},CPU百分比爲99%。執行此While(true){Thread.Sleep(Timeout.Infinite);}後。 CPU百分比下降到1%。 – sivaL