C# Hangfire重复作业不';我不能马上开始

C# Hangfire重复作业不';我不能马上开始,c#,.net,scheduler,hangfire,hangfire-sql,C#,.net,Scheduler,Hangfire,Hangfire Sql,我正在使用cron表达式创建定期作业。我正在创建每周3天每半小时执行一次的表达式。 执行是正确的,但开始的时间不正确。 假设在下午2:16创建作业,作业在下午2:30开始执行。 如果我配置为执行2:20,作业也会在下午2:30开始,理想情况下我希望在2:20开始,每半小时重复一次。 目前我还没有找到一种方法,在2:25开始,每半小时复发一次 有人能告诉我为什么使用cron表达式时会发生这种情况吗?是否有一种方法可以识别此模式,以便我可以调整执行时间。 cron表达式为“*/30**1,2 1,2

我正在使用cron表达式创建定期作业。我正在创建每周3天每半小时执行一次的表达式。 执行是正确的,但开始的时间不正确。 假设在下午2:16创建作业,作业在下午2:30开始执行。 如果我配置为执行2:20,作业也会在下午2:30开始,理想情况下我希望在2:20开始,每半小时重复一次。 目前我还没有找到一种方法,在2:25开始,每半小时复发一次

有人能告诉我为什么使用cron表达式时会发生这种情况吗?是否有一种方法可以识别此模式,以便我可以调整执行时间。 cron表达式为“*/30**1,2 1,2,3”

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

从,SQL后端被轮询,因此开始时间的准确性可能会受到限制:

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

{
SlidingVisibilityTimeout=时间跨度从分钟(5),
QueuePollInterval=TimeSpan.0
};
GlobalConfiguration.Configuration.UseSqlServerStorage(“,选项)```

能否添加正在使用的cron表达式,如果没有它,我们只能推测。IIRC,作业计时的准确程度取决于轮询存储后端的频率。您使用的是哪种存储后端?您是否查看了此配置?关于
16,46***1,2,3
如何。你可以用它来帮助你。您已经有了每30分钟运行一次表达式的正确cron,只需在16分钟启动第一个即可。仅供参考,您的cron仅在1月和4月运行。这是由于月份的
1,2
{
    SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
    QueuePollInterval = TimeSpan.Zero
};

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