挂起的重复性作业不会立即启动



我正在使用 cron 表达式来创建循环作业。我正在创建表达式以在一周中的 3 天内每半小时执行一次。执行正确,但开始时间不正确。假设作业的创建发生在下午 2 点 16 分,作业在下午 2 点 30 分开始执行。如果我配置为执行 2:20,则作业也从下午 2:30 开始,理想情况下我想从 2:20 开始,每半小时重复一次。目前我没有找到从2:25开始并每半小时重复一次的方法。

有人可以让我知道为什么在使用 cron 表达式时会发生这种情况吗?有没有办法识别这种模式,以便我可以调整我的执行时间。cron 表达式为 "*/30 * * 1,2 1,2,3">

@cocowalla:我正在使用sql服务器作为后端。我正在完全按照 hangfire 文档中给出的方式复制连接字符串,但没有查看轮询。 除此之外还有其他原因吗?

从文档中,将轮询 SQL 后端,因此启动时间的准确性可能会受到限制:

原始 SQL Server 作业存储实现的主要缺点之一 – 它使用轮询技术来获取新作业。从 Hangfire 1.7.0 开始,当设置了 SlidingInvisibleTimeout 选项时,可以使用 TimeSpan.Zero 作为轮询间隔。

{
    SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
    QueuePollInterval = TimeSpan.Zero
};
GlobalConfiguration.Configuration.UseSqlServerStorage("<name or connection string>", options);```

相关内容

  • 没有找到相关文章

最新更新