2017-01-18 386 views
0

我有一個作爲Azure Webjobs運行並根據需要進行擴展的服務,這是一個長時間運行的過程,可能需要幾個小時處理Queue上的每條消息。它的工作正常,唯一的問題是它依賴於第三方的休息端點,由於各種問題可能無法使用。Azure WebJobs睡眠

我的代碼可以捕捉到這個錯誤,我需要等待10-15seconds再次嘗試之前,我用

Thread.Sleep(10000); 

這個本地工作,但是當在Azure中的webjob似乎暫停所有實例的網絡工作不僅僅是一個需要等待的人。

任何想法爲什麼?我相信每個實例都在一個不同的線程中,但是我對WebJobs來說是比較新的,所以不能100%確定,所以對此的一些指導也會很好。

+0

您是否嘗試使用async/await方法? – Thomas

回答

0

當您擴展應用程序服務計劃時,WebJob的所有實例都將獨立運行。如果他們全部同時睡覺,那麼可能是在那段時間內其他終端通常不可用,導致他們全部入睡。

+0

是的,我也曾想過,但後來我測試了一下,發現其中一個作業沒有使用端點,因爲它忙於處理數據並且端點處於脫機狀態,所以另一個作業是線程,睡眠,並且它們全部停止,因此作業嘎吱嘎吱失蹤的數據,因此我的關注和這個問題。那有意義嗎?這裏遲到了...... –