我使用 Hangfire 来运行一组周期性作业。有时我想重新命名这些工作。然而,目前尚不清楚如何做到这一点。 例如。我有代码:
RecurringJob.AddOrUpdate("Old Name", () => SomeJob(), "Cron");
如果我想重命名它,我必须执行以下操作:
RecurringJob.RemoveIfExists("Old Name");
RecurringJob.AddOrUpdate("New Name", () => SomeJob(), "Cron");
但在这种情况下,作业的历史记录将会丢失。 也许有更好的方法来重命名工作?
Hangfire 没有公开任何可以帮助您的 API - 据我所知。但您可以通过 SQL 脚本手动尝试。
类似这样的:
Update [HangFire].[Set] SET [Value] = 'Your_new_JobName' where [Value] = 'Your_Old_job_name'
和
Update [Hangfire].[Hash] SET [Key] = 'recurring-job:Your_new_JobName' where [Key]= 'recurring-job:Your_Old_job_name'
这应该足以更新重复作业名称并保留历史记录。