2017-02-22 69 views
1

我正在使用Visual Studio 2015將一個web應用程序和各種關聯(連續)webjobs部署到Azure。直到最近我的觀察結果是,部署過程中,webjobs將保持其狀態;如果作業正在運行,那麼如果代碼被更改,它將被重新啓動。如果作業已停止,代碼將會更新,並且webjob將保持停止狀態。想要Azure webjobs在發佈web應用程序後保持運行狀態(運行或停止)

我現在看到的行爲現在是停止的webjobs正在部署後開始。這不是我想要的行爲,因爲作業因爲某種原因而停止。我發佈Web應用程序代碼和/或webjob代碼的新版本的事實不應被視爲框架的假設,即應該更改webjobs的運行狀態。

這種行爲是可控的嗎?

回答

1

艾米特蘋果回答了這個問題here。 「

」要在停止狀態下部署連續的WebJob,只需在WebJob(二進制文件)的根目錄下添加一個名爲disable.job的文件,這將告訴框架WebJob當前已停止。「

我做了一個Kudu回購的快速搜索,看起來這仍然有效。但它實際上並不在Kudu文檔中。

+0

Ty。我也看到了。問題是我想讓webjob的運行狀態保持以下部署相同的狀態;如果停止了,停止它;如果它正在運行,請繼續運行。我可以發誓這種行爲(如果它停止,那麼這項工作就開始了)最近剛剛從我這裏開始...... – Matt

0

從庫杜項目的ContinuousJobRunner.cs,我們能找到的IsDisabled屬性用於檢查webjob是否啓用或不如下:

private bool IsDisabled 
{ 
    get { return OperationManager.Attempt(() => FileSystemHelpers.FileExists(_disableFilePath) || Settings.IsWebJobsStopped()); } 
} 

正如我知道,連續WebJobs,我們有以下方法來阻止它。

1)登錄到Azure的門戶網站,在「設置>應用程序設置」刀鋒下,添加一個新的appsetting WEBJOBS_STOPPED與設定值1

注:此設置將禁用這兩個觸發webjobs和持續webjobs。

2)在你WebJob二進制文件的根目錄中添加一個名爲disable.job文件

你可以登錄到Azure的門戶網站,在「設置> WebJobs」你的web應用的刀片,選擇您webjob,然後單擊「停止」 。另外,你可以手動添加這個文件。對於編程方式,您可以利用WebJobs API以及基於網絡應用程序的 Deployment credentials的基本身份驗證來啓動/停止WebJob。

我現在看到的行爲是停止的webjobs在部署後開始。這不是我想要的行爲,由於作業被停止的原因

對於連續的WebJobs,我測試了這個問題,發現webjobs在我發佈我的web應用程序或webjob後會保持它們的狀態(停止/運行)。總之,請檢查你如何阻止你持續的WebJobs,你可以創建一個新的Webjob來隔離這個問題。

+0

謝謝你的回覆。有些東西對我來說不清楚。你說:「對於連續的WebJobs,我已經測試過這個問題,並且發現在我發佈我的Web應用程序或Webjob之後,Webjobs將保持其狀態(停止/運行)。總之,請檢查如何停止連續的WebJobs和你可以創建一個新的webjob來隔離這個問題。「請說明哪些配置更改可以讓webjob在發佈後保持其狀態。或者,你是說這是你經歷的默認行爲? – Matt

+1

我的意思是說,如果我通過上述方法停止/開始連續WebJobs,那麼我的WebJobs將在發佈後保持其狀態,而不更改任何配置。 –

相關問題