Inhabilitar la puesta en cola de Hangfire BackgroundJob fallido

Inhabilitar la puesta en cola de Hangfire BackgroundJob fallido

Resuelto, usando [AutomaticRetry(Attempts = 0)]


Puede anotar el método para que se ejecute en segundo plano con el siguiente atributo:

[AutomaticRetry(Attempts = 0)]

O configurarlo globalmente:

GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute { Attempts = 0 });

Importante si usa un contenedor DI con una interfaz, debe colocar el atributo en la definición de la interfaz

public interface IDataUpdater
{
    [Hangfire.AutomaticRetry(Attempts = 0, OnAttemptsExceeded = AttemptsExceededAction.Delete)]
    void UpdateData();
}

Ponga en cola el trabajo así

Hangfire.RecurringJob.AddOrUpdate<IDataUpdater>(updater => updater.UpdateData(), Cron.Hourly);

Pruébelo lanzando cualquier excepción anterior dentro de su implementación. Si lo ha hecho bien, verá esto en el historial de trabajos en 'eliminado'.