2015-02-07 53 views
2

我發現這個博客約WebJobs「優雅」關機 - http://blog.amitapple.com/post/2014/05/webjobs-graceful-shutdown/#.VNZbLPmsXZ0Azure的連續WebJob「優雅」關機是小於5秒

它說,連續WebJobs正常關機將默認爲5秒。

我想在WebJob關閉時發送電子郵件,因此嘗試了博客中詳細介紹的方法,但是此電子郵件不發送(我的電子郵件在WebJob啓動時發送OK)。

看着webjob的日誌我想這可能是因爲關機是1秒而不是5秒 - 如果我正確地閱讀日誌。

在提供的截圖中,似乎在18:07:58「WebJob正在停止」,然後在18:07:58「狀態更改爲已停止」,因此不是5秒。

enter image description here

有誰知道我怎麼能保證停擺期間爲5秒?

或者即使可以將Continuous WebJobs的關閉寬限期延長到5秒以上?

在此先感謝

** 更新 **

我的問題是,我忘了FileWatcher事件處理程序是從主線程不同的線程。因此,主線程正在完成,並且在事件處理程序邏輯完成之前停止工作。 已經接受了阿米特蘋果的評論,因爲這指出了我的正確方向。 感謝你們雙方的意見。

回答

2

來源:https://github.com/projectkudu/kudu/wiki/Web-jobs#continuous

您可以通過在settings.job文件中指定它(以秒爲單位) 更改作業的寬限期(應該是在同一個根目錄中 作業的腳本)。

{ "stopping_wait_time": 60 } 

這將使工作寬限期爲60秒而不是默認值。

此外,請注意,如果您有一個webjob運行,您應該將網站設置爲「始終開啓」。這可以在管理門戶中進行配置。

+0

我認爲設置。不幸的是,作業文件僅用於觸發的Web作業而不是連續的Web作業。無論如何,我確實嘗試過,以防萬一。我的webjob是一個控制檯應用程序,我將該文件添加到根目錄,設置爲60秒,但這沒有什麼區別。 – strangerinthealps 2015-02-08 15:03:14

+0

此外,我認爲「永遠在線」選項僅適用於標準網站,而不適用於免費/共享網站。我正在使用免費網站,因爲我真的不會支付共享網站的重大費用,而只是爲了擁有一個WebJob。理想情況下,我想將默認的5秒應用於我的Continuous WebJob。 http://blog.amitapple.com/post/73574681678/git-deploy-console-app/#.VNd7aPmsXZ1 – strangerinthealps 2015-02-08 15:08:03

+0

您是否曾嘗試在項目的「屬性」文件夾中添加文件? – 2015-02-08 15:17:51