记录 Hangfire 任务调度相关的配置

使用Hangfire 作为任务调度程序,当任务执行太耗时 需要做一些配置,记录一下。。。。

 

使用Sql Server 数据库时:

 

                var HangfireTest_ConnectionString = ConfigHelper.GetConn("HangfireTest").ConnectionString;
                var sqlServerStorageOptions = new SqlServerStorageOptions
                {
                    QueuePollInterval = TimeSpan.FromSeconds(15),
                    JobExpirationCheckInterval = TimeSpan.FromHours(1),
                    CountersAggregateInterval = TimeSpan.FromMinutes(5),
                    PrepareSchemaIfNecessary = true,
                    DashboardJobListLimit = 50000,
                    TransactionTimeout = TimeSpan.FromMinutes(30),
                };

使用内存存储数据时:

          var memoryStorageOptions = new MemoryStorageOptions()
                {
                    FetchNextJobTimeout = TimeSpan.FromMinutes(30),
                };

 

 

根据上面两个配置项:

  GlobalConfiguration.Configuration
                .UseColouredConsoleLogProvider()
                .UseMemoryStorage(memoryStorageOptions);
   // UseSqlServer....

 

后台服务配置,超时配置:

     var backgroundJobServerOptions = new BackgroundJobServerOptions()
                {
                    ServerTimeout = TimeSpan.FromMinutes(30),
                    StopTimeout = TimeSpan.FromMinutes(30),
                    ShutdownTimeout = TimeSpan.FromMinutes(30),
                    WorkerCount = 15,
                    SchedulePollingInterval = TimeSpan.FromSeconds(10),
                    HeartbeatInterval = TimeSpan.FromMinutes(15)
                };
using (var server = new BackgroundJobServer(backgroundJobServerOptions))
{
     //your jobs

}    

 

posted @ 2022-04-25 13:50  rhyswang  阅读(415)  评论(0编辑  收藏  举报