如何正确重命名 Hangfire 作业?

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

我使用 Hangfire 来运行一组周期性作业。有时我想重新命名这些工作。然而,目前尚不清楚如何做到这一点。 例如。我有代码:

RecurringJob.AddOrUpdate("Old Name", () => SomeJob(), "Cron");

如果我想重命名它,我必须执行以下操作:

RecurringJob.RemoveIfExists("Old Name");
RecurringJob.AddOrUpdate("New Name", () => SomeJob(), "Cron");

但在这种情况下,作业的历史记录将会丢失。 也许有更好的方法来重命名工作?

c# hangfire
1个回答
0
投票

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'

这应该足以更新重复作业名称并保留历史记录。

© www.soinside.com 2019 - 2024. All rights reserved.