【问题标题】:The Next execution and last execution is N/A in Recurring Jobs - hangfire重复作业中的下一次执行和最后一次执行是 N/A - hangfire
【发布时间】:2018-10-16 16:01:03
【问题描述】:

我有这个循环工作的代码,这正在调用 BackgroundJob.Enqueue

RecurringJob.AddOrUpdate("indexes-scheduler", () => AppBuilderExtensions.checkIndexDate(), Cron.Minutely);

如果我在运行项目后检查仪表板,最后一次执行和下一次执行显示 N/A。

我试图安排一个简单的工作

RecurringJob.AddOrUpdate("tests-job", () => Console.WriteLine("This job will execute once in every minute"), Cron.Minutely);

但还是一样

【问题讨论】:

  • 难道是时差太小无法显示?工作可以在毫秒内轻松完成。这个东西似乎是为接近秒或分钟的时间设计的。告诉您上一份工作是 8 毫秒前,而下一份工作是在 8 毫秒内到期,这将在 16 毫秒内将该消息传递给您的时间内失去任何价值。
  • 我也尝试过增加时间间隔,并且重复作业中的调用方法永远不会被命中(有断点)。

标签: c# asp.net hangfire


【解决方案1】:

好的,我使用这个脚本让它工作了,我还尝试从 Hangfire.Server 表中删除所有服务器

 TRUNCATE TABLE [HangFire].[AggregatedCounter]
 TRUNCATE TABLE [HangFire].[Counter]
 TRUNCATE TABLE [HangFire].[JobParameter]
 TRUNCATE TABLE [HangFire].[JobQueue]
 TRUNCATE TABLE [HangFire].[List]
 TRUNCATE TABLE [HangFire].[State]
 TRUNCATE TABLE [HangFire].[Server]
 DELETE FROM [HangFire].[Job]
 DBCC CHECKIDENT ('[HangFire].[Job]', reseed, 0)
 UPDATE [HangFire].[Hash] SET Value = 1 WHERE Field = 'LastJobId'

并最终使用它重新创建了这些服务器

app.UseHangfireServer();

这个技巧对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多