我在Azure WebApp中使用WebJob。該作業執行的方法:如何在回收/重新啓動後使用TimeTrigger自動啓動Azure WebJob WebApp
public static void ProcessQueue(
[TimerTrigger("00:02:00")] TimerInfo timerInfo,
[Queue("queue")] CloudQueue queue,
[Table("processing")] CloudTable processingTable,
TextWriter log)
{
// do sth...
}
的TimeTrigger
選項來自Microsoft.Azure.WebJobs.Extensions。
我將WebApp設置爲在"always on" mode中運行。
但是,如果我正在重新啓動或更改應用程序設置,WebApp可能會在內部進行回收?我認爲。
因爲在這之後我收到以下錯誤:
[11/10/2016 08:22:24 > 36d12e: SYS ERR ] WebJob run failed due to: System.Threading.ThreadAbortException: Thread was being aborted. at Kudu.Core.Jobs.BaseJobRunner.RunJobInstance(JobBase job, IJobLogger logger, String runId, String trigger, ITracer tracer, Int32 port) at Kudu.Core.Jobs.TriggeredJobRunner.<>c__DisplayClass10_1.b__0(Object _)
於是,我就設定一個時間表上WebJob,我也試過在目錄中粘貼一個cron時間表,但沒有任何幫助我出去把重置/回收後的工作「運行」。
更新1
我的EXE文件的內容(Main()
)
JobHostConfiguration config = new JobHostConfiguration();
config.Tracing.ConsoleLevel = TraceLevel.Verbose;
config.Queues.MaxDequeueCount = 10;
config.UseCore();
config.UseTimers();
var host = new JobHost(config);
host.RunAndBlock();
更新2
如果我在Azure的門戶網站都手動部署爲連續運行的預期(感謝mathewc)。但這是手動步驟;)。我處於DevOps場景中,所有內容都將由Visual Studio團隊服務構建,創建和部署,您無法設置任何選項將作業部署爲連續作業。
你還可以分享你的exe啓動代碼,所以我可以看到你是否正確啓動WebJobs SDK JobHost? – mathewc
@mathewc:已添加爲Update1 – Martin