Hangfire - CRON 在数据库中保存在哪里?

问题描述 投票:0回答:1

HangFire 将定期作业的 CRON 保存在数据库中的哪里? 例如,如何修改这样的表达式来获取有关其 CRON 的信息?

SELECT [Key]
      ,[Score]
      ,[Value]
      ,[ExpireAt]
      . **???** as [Cron]
FROM [HangFire].[Set]
cron hangfire .net-8.0
1个回答
0
投票

Hangfire 将重复作业的所有相关数据保存在哈希表中。要为特定作业选择 Cron 值,您可以使用以下查询:

SELECT [Key]
      ,[Field]
      ,[Value]
      ,[ExpireAt]
  FROM [HangFire].[Hash] where [Key] like 'recurring-job:job-id-here' and Field = 'Cron'

[Value]
将是您的 Cron 的值。

Hash
表中重复作业的键是“recuring-job:”和作业的Id,
[Field]
代表
[Value]
的描述字段。

顺便说一句,您可以像这样以编程方式重新安排重复作业:

    using var connection = JobStorage.Current.GetConnection();
    var jobData = connection.GetRecurringJobs(new List<string> { "job-id" }).FirstOrDefault();
    var recurringJobManager = new RecurringJobManager();
    recurringJobManager.AddOrUpdate("job-id", jobData.Job, "cron-expression-here");
© www.soinside.com 2019 - 2024. All rights reserved.