Ho la seguente logica in un WebJob che utilizza il nuovo SDK WebJobs 0.3.0-beta. Quando il mio codice non riesce a elaborare il messaggio, il dashboard di Azure mostra un'eccezione aggregata (che ha senso poiché questa è asincrona). TUTTAVIA, non ritenta l'elaborazione del messaggio.WebJobs non riprovare messaggio in coda non riuscito
Il pochissimo documentation che sono stato in grado di trovare indica che il messaggio dovrebbe essere riprovato entro 10 minuti dall'errore. Non è questo il caso del nuovo SDK?
public static Task ProcessMyMessageAsync(
[QueueTrigger(Config.MY_QUEUE)] string msg,
int dequeueCount,
CancellationToken cancellationToken)
{
var processor = Config.Container.GetInstance<IMessageProcessor>();
return processor.HandleJobAsync(msg, dequeueCount, cancellationToken);
}
L'eccezione ricevo deriva da un'eccezione SQL Timeout (sua una query db contro SQL Azure nel mio codice):
System.AggregateException: System.AggregateException: One or more errors occurred.
---> System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details.
---> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
---> System.ComponentModel.Win32Exception: The wait operation timed out
Si verifica il guasto durante la fase di legame o all'interno vostra funzione? Puoi dare maggiori dettagli su quale eccezione ottieni? –
@VictorHurdugaci L'eccezione non sembra essere correlata al JobHost o qualcosa del genere. È sicuramente all'interno del mio codice e dal momento che è un Timeout SQL, voglio che il messaggio venga ritentato. – ericb