HangFire 将定期作业的 CRON 保存在数据库中的哪里? 例如,如何修改这样的表达式来获取有关其 CRON 的信息?
SELECT [Key]
,[Score]
,[Value]
,[ExpireAt]
. **???** as [Cron]
FROM [HangFire].[Set]
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");