es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Hangfire consultando la base de datos cada 15 segundos.

Uso Trabajo recurrente para llamar a mi función Test() con Cron.Daily(). No necesito buscar la base de datos cada 15 segundos, mi función se ejecuta solo una vez al día.

¿Cómo detener a hangfire para que busque en la base de datos cada 15 segundos? o actualizar el intervalo.

Esta es la configuración que estoy utilizando.

services.AddHangfire(config =>
config.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
.UseSimpleAssemblyNameTypeSerializer()
.UseDefaultTypeSerializer()
.UseSqlServerStorage(configuration.GetConnectionString("BackOffice"))
);
var sqlStorage = new SqlServerStorage(configuration.GetConnectionString("BackOffice"));
JobStorage.Current = sqlStorage;

services.AddHangfireServer(sqlStorage);
GlobalConfiguration.Configuration.UseSqlServerStorage(configuration.GetConnectionString("BackOffice"));
services.AddHttpClient();

Si sabe por favor ayúdeme, gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para detener que Hangfire consulte la base de datos cada 15 segundos, puede cambiar la configuración del intervalo de consulta en la configuración a un valor más alto. El intervalo de consulta predeterminado para Hangfire es de 15 segundos, pero puede aumentar este valor para reducir la carga de la base de datos.

    Para actualizar el intervalo, agregue el siguiente código a su configuración:

    services.AddHangfire(config =>
        config.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
        .UseSimpleAssemblyNameTypeSerializer()
        .UseDefaultTypeSerializer()
        .UseSqlServerStorage(configuration.GetConnectionString(“BackOffice”), 
        new SqlServerStorageOptions
        {
            CommandBatchMaxTimeout = TimeSpan.FromMinutes(5), //Aumentar el tiempo de espera de lote
            SlidingInvisibilityTimeout = TimeSpan.FromMinutes(1), //Agregar tiempo de espera para el servidor
            QueuePollInterval = TimeSpan.FromSeconds(30) //Cambiar el intervalo de consulta a 30 segundos
        }))
    

    En el código anterior, puede cambiar la propiedad “QueuePollInterval” al intervalo deseado en segundos. En este ejemplo, el intervalo se establece en 30 segundos.

    Al aumentar el intervalo de consulta, puede reducir la frecuencia de las consultas a la base de datos y reducir la carga en su servidor o base de datos.

Comments are closed.