Steve
Steve

Reputation: 4563

How to reduce the frequency of hangfire calls to the database?

I have a background service web app using C# and hangfire. I notice that just in a short duration, for example, 1 minute, there are around 800 calls to the database by hangfire. Note that I have no yet created any request job or recurring job in the hangfire. Is there a way to reduce the frequency of hangfire calls to the database?

I have set to just 1 worker and QueuePollInterval to TimeSpan.FromMinutes(120) but not sure why there are 3 calls to the db every 2 seconds.

var options = new SqlServerStorageOptions
{
    QueuePollInterval = TimeSpan.FromMinutes(120)
};

builder.Services.AddHangfire(configuration => configuration
    .UseSqlServerStorage(myServicesConnStr, options)
    .UseFilter(new AutomaticRetryAttribute { Attempts = 1, DelaysInSeconds = new int[] { 1800 } })
);

builder.Services.AddHangfireServer(options => options.WorkerCount = 1);

Upvotes: 1

Views: 1392

Answers (1)

vipasane
vipasane

Reputation: 355

Traces from database would be nice to have some visibility. My best bet would be that those calls are coming from Dashboard or heartbeats.

Look into following properties (and their current values) to reduce calls:

  • HeartbeatInterval
  • ServerCheckInterval
  • SchedulePollingInterval
  • StatsPollingInterval

References: https://api.hangfire.io/html/Properties_T_Hangfire_Server_BackgroundProcessingServerOptions.htm https://docs.hangfire.io/en/latest/configuration/using-sql-server.html#configuring-the-polling-interval

Upvotes: 1

Related Questions