gpt4 book ai didi

c# - 避免 hangfire 作业重复的技巧?

转载 作者:行者123 更新时间:2023-12-05 05:03:13 25 4
gpt4 key购买 nike

我遇到一个问题,hangfire 上的某些作业使用相同的参数排队不止一次,这些作业几乎同时排队。

我尝试将 worker 的数量限制为一个,然后用 DisableConcurrentExecution 修饰我的方法。

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

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

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

最佳答案

根据Hangfire documentation当重复作业/任务没有标识符时会出现重复作业问题:“为每个重复作业使用唯一标识符,否则您将以单个作业结束。”

RecurringJob.AddOrUpdate("some-id", () => Console.WriteLine(), Cron.Hourly);

来源:

  1. https://gist.github.com/odinserj/a8332a3f486773baa009 ;
  2. https://discuss.hangfire.io/t/how-do-i-prevent-creation-of-duplicate-jobs/1222/4 ;

关于c# - 避免 hangfire 作业重复的技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61805469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com