Tempo limite do comando WebJob do Azure
Estamos com problemas nos trabalhos da Web do Azure. Criamos um aplicativo de console C #, o compactamos e criamos o novo trabalho na Web. É um aplicativo de console c # que constantemente acessa um de nossos serviços da web para processar itens na fila.
Sempre que executamos o trabalho na Web, estamos recebendo o seguinte erro:
'cmd / c xxxxxxxx ....' interrompido devido a nenhuma saída e atividade da CPU por 121 segundos. Você pode aumentar a configuração SCM_COMMAND_IDLE_TIMEOUT para resolver o problema
Quando aumentamos o SCM_COMMAND_IDLE_TIMEOUT para600
(10 minutos). O trabalho é executado por 10 minutos - e, em seguida, obtemos o mesmo erro com o mesmo121 seconds
erro.
O que estamos fazendo errado?
Aqui está o código do aplicativo do console:
static void Main(string[] args)
{
bool ThereAreItemsInQueue = true;
int Counter = 1;
DateTime StartTime = DateTime.Now;
while(ThereAreItemsInQueue)
{
Task.Run(() => {
try
{
//DEQUEUE
byte[] response = HttpHelper.HttpPOST(@"xxxxxxxxxxxxx", new byte[0]);
string strResponse = System.Text.Encoding.Default.GetString(response);
System.Diagnostics.Trace.TraceError("Attempt #" + Counter + "DEQUEUE FINISHED. Response:" + strResponse);
//CHECK IF THE QUEUE IS EMPTY
if (strResponse.Contains("Were Done"))
ThereAreItemsInQueue = false;
}
catch(Exception ex)
{
System.Diagnostics.Trace.TraceError("Error Has Occured on attempt #" + Counter + "." + ex.Message + "\r" + ex.StackTrace);
}
});
System.Threading.Thread.Sleep(5000);
//SEE IF THIS HAS BEEN RUNNING FOR MORE THAN 24 HOURS
if (DateTime.Now.Subtract(StartTime).TotalHours >= 24)
ThereAreItemsInQueue = false;
Counter++;
}
}
Estamos abordando esse problema da maneira errada?
Nota: cadaHttpHelper.HttpPOST
A solicitação leva cerca de 2 segundos. Portanto, esse não é o problema.
Nota 2: estamos usandoTask.Run
para criar pedidos do tipo "defina e esqueça".
Nota3: a configuração do site "Always On" - está ativada.