提示,以避免hangfire作业重复?

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

我遇到的问题是,使用相同的参数将一些执行hangfire的作业排入一个以上的队列,而几乎同时将这些作业排入队列。

我试图将工人人数限制为一个,然后用DisableConcurrentExecution装饰我的方法。

我正在使用sqlserver作为存储。任何人都遇到过这个问题,有一些避免的技巧?

PS:我使用了DisableConcurrentExecution,因为在hangfire文档中,互斥量和信号量不能保证仅一次调用该作业。

[PS2:检查我的hangfire服务器,我注意到我有两个实例,每个实例只有1个工作程序,所以我认为这是一个并行性问题,而不是并发的。

c# parallel-processing hangfire hangfire-sql
2个回答
0
投票

根据Hangfire documentation,当重复的作业/任务没有标识符时,就会出现重复的作业问题: RecurringJob.AddOrUpdate("some-id", () => Console.WriteLine(), Cron.Hourly);

来源:

    https://gist.github.com/odinserj/a8332a3f486773baa009;

  • https://discuss.hangfire.io/t/how-do-i-prevent-creation-of-duplicate-jobs/1222/4;

  • 0
    投票
    这项工作对我有用。我用MaximumConcurrentExecutions(1)装饰了hangfire运行的接口方法。
    © www.soinside.com 2019 - 2024. All rights reserved.