Ho un WebJob Azure che non riesce dopo soli 20 minuti di corsa con il seguente output di registro:WebJob corsa riuscita a causa di: System.Threading.ThreadAbortException: Thread annullato
[02/27/2015 00:30:11 > 3e9b72: SYS INFO] Status changed to Initializing
[02/27/2015 00:30:21 > 3e9b72: SYS INFO] Run script 'Namespace.Class.DataProcessor.exe' with script host - 'WindowsScriptHost'
[02/27/2015 00:30:21 > 3e9b72: SYS INFO] Status changed to Running
[02/27/2015 00:30:23 > 3e9b72: INFO] Found the following functions:
[02/27/2015 00:30:23 > 3e9b72: INFO] Namespace.Class.DataProcessor.Functions.ManualTrigger
[02/27/2015 00:30:23 > 3e9b72: INFO] Executing: 'Functions.ManualTrigger' because This was function was programmatically called via the host APIs.
[02/27/2015 00:51:35 > 3e9b72: ERR ] Thread was being aborted.
[02/27/2015 00:51:35 > 3e9b72: SYS INFO] WebJob process was aborted
[02/27/2015 00:51:35 > 3e9b72: SYS INFO] Status changed to Stopped
[02/27/2015 00:51:35 > 3e9b72: SYS INFO] Status changed to Failed
[02/27/2015 00:51:35 > 3e9b72: 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)
at Kudu.Core.Jobs.TriggeredJobRunner.<>c__DisplayClass2.<StartJobRun>b__0(Object _)
E 'in programma per iniziare una volta al giorno quando il sistema è silenzioso e dopo 20 minuti fallisce con quell'errore. Questo errore si verifica solo quando il lavoro viene attivato automaticamente dallo scheduler. Se attivato manualmente dal pannello di Azure WebJob sotto il sito, non vi sono errori nemmeno se viene eseguito per molte ore.
L'applicazione lavoro genera un '.' ogni pochi passi per impedire a Azure di pensare che sia inattivo. Ho anche configurato le seguenti impostazioni sul sito web in cui viene eseguito il lavoro che gli impedisce di timeout se ci vuole un po 'per rispondere o uscita qualcosa al registro:
WEBJOBS_IDLE_TIMEOUT = 14400 SCM_COMMAND_IDLE_TIMEOUT = 14400
L'azione di posti di lavoro è un post richiesta per attivare il lavoro che sospetto sia lo stesso meccanismo che avvia il lavoro manualmente (e non scade).
Come posso evitare che questo non funzioni dopo 20 minuti? Quale impostazione devo modificare/aggiungere per consentire l'esecuzione del lavoro per più di 20 minuti?
Hai mai risolto questo? Ho lo stesso problema. – jrummell
Questo sembra essere correlato - http://stackoverflow.com/questions/27939766/long-running-web-job-being-aborted-by-azure – jrummell
@jrummell La mia soluzione era dividere il lavoro in funzioni più mirate ed eseguire più frequentemente dal momento che è il volume di dati compilati a causarne così a lungo. Ora le funzioni non richiedono più di 10 minuti in modo che non vengano arrestate. Testerà anche la soluzione "Sempre attivo" e quindi forse anche le impostazioni "stopping_wait_time" e vedremo se funziona. – BrutalDev