.Net Hangfire延长超时作业(默认30分钟),重复执行问题

在Hangfire中的定时任务,当job执行超过30分钟就会重复执行,导致浪费资源、数据不准确等等

image

解法

MemoryStorage

context.Services.AddHangfire(options =>
{
    options.UseSimpleAssemblyNameTypeSerializer()
    .UseRecommendedSerializerSettings()
    .UseStorage(new MemoryStorage(new MemoryStorageOptions
    {
        FetchNextJobTimeout = TimeSpan.FromHours(2), // 设置超时重试时间
    }));
});

UsePostgreSqlStorage

options.UsePostgreSqlStorage(
  postgresOptions => postgresOptions.UseNpgsqlConnection(connectionString),
  new PostgreSqlStorageOptions()
  {
      InvisibilityTimeout = TimeSpan.FromHours(2) // 设置超时重试时间
  }
);
posted @ 2026-02-13 10:21  Cody&  阅读(2)  评论(0)    收藏  举报