如何在 C# 中停止 Hangfire 作业而不删除作业?

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

我在 .Net Core 应用程序中使用

Hangfire
来执行后台处理。在某些情况下,我需要退出或停止作业执行。为此,我进行了搜索并发现我可以使用
BackgroundJob.Delete(jobId);
RecurringJob.RemoveIfExists(jobId);
来停止作业,它工作正常但是,同时它也将作业标记为已删除,所以问题是应用程序池启动时到时候 Job 就不会执行了。

那么有什么方法可以退出作业而不删除它呢?

任何帮助将不胜感激!

谢谢,

c# asp.net-core-2.0 hangfire hangfire-mongodb
1个回答
0
投票

您可以将 cron 表达式指定为 never。

根据 Hangfire 文档

     //
    // Summary:
    //     Returns cron expression that never fires. Specifically 31st of February
    public static string Never()
    {
        return Yearly(2, 31);
    }

示例:

using Hangfire;

RecurringJob.AddOrUpdate<IScheduledJobService>("some-id", x => x.SomeMethodToInvokeAJob(), Cron.Never());

注意:IScheduledJobService 是一个定制服务,用于管理作业的实际逻辑。

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