Hangfire 每 15 秒获取一次数据库

Posted

技术标签:

【中文标题】Hangfire 每 15 秒获取一次数据库【英文标题】:Hangfire fetching database every 15 second 【发布时间】:2022-01-06 11:40:44 【问题描述】:

我使用 Recurring Job 来调用我的函数 Test() 和 Cron.Daily() 。 我不需要每 15 秒获取一次数据库,我的函数每天只执行一次。

如何停止 hangfire 每 15 秒获取数据库?或更新间隔。

这是我正在使用的配置。

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();`

如果你知道请帮助我,谢谢

【问题讨论】:

【参考方案1】:

您要查找的关键字是“配置轮询间隔”。 Hangfire 轮询 SQL 服务器以查找需要执行的任何作业,默认值为 15 秒。您可以在 SqlServerStorageOptions documented here 中更改它

摘自链接:

var options = new SqlServerStorageOptions

    SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
    QueuePollInterval = TimeSpan.Zero
;

GlobalConfiguration.Configuration.UseSqlServerStorage("<name or connection string>", options);

【讨论】:

我试了一下,每 15 秒检查一次数据库,

以上是关于Hangfire 每 15 秒获取一次数据库的主要内容,如果未能解决你的问题,请参考以下文章

即使处于非活动状态,Hangfire也会继续运行SQL查

如何使用 QT 每 15 秒调用一次函数

每 10 秒更新一次用户位置 - 从 mysql 获取位置

Hangfire 定时任务设置某个时间区间每隔一定时间触发的Cron表达式

c# 每 x 秒运行一次数据库任务

如何实时更新 PyQt5 标签?