Hangfire-在运行时为特定的RecurringJob配置自动重试

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

我正在使用Hangfire v1.7.9,并且试图在MVC 5应用程序中配置一系列重复的后台作业,以自动将外部参考数据检索到应用程序中。我已经用一项任务对此进行了测试,并且效果很好,但是我希望系统内的管理员能够配置与在这些后台作业中调用的方法相关联的AttemptsDelayInSeconds属性参数。 >

AutomaticRetryAttribute指出您必须使用...

...属性参数类型的常量表达式,typeof表达式或数组创建表达式

...根据我的阅读,是所有属性的典型代表。但是,这意味着我无法通过在其他地方设置属性值,然后在包含要运行的方法的类中对其进行引用来实现我的目标。

此外,似乎没有任何方法可以在BackgroundJob.EnqueueRecurringJob.AddOrUpdate方法中配置自动重试属性。最后,我研究了是否可以为每个命名队列使用特定的重试计数,但是可惜的是,您可以设置的有关Hangfire队列的唯一属性是初始化Hangfire服务器时在BackgroundJobServerOptions类中的名称。

我在这里用尽了所有的大道吗?我唯一想到的另一件事是使用int枚举来create my own implementation of the AutomaticRetryAttribute and set the values at compile time,尽管从我需要提供用户需要提供的每个值的已定义列表的意义上来说,这本身会产生问题。选择。由于我希望重试次数从5分钟到1440分钟(24小时)之间都是可配置的,所以我真的不希望每个可用值都庞大而笨拙enum : int。有没有人遇到过这个问题,或者这是我应该在Hangfire GitHub上作为请求提交的东西?

我正在使用Hangfire v1.7.9,并且试图在MVC 5应用程序中配置一系列重复的后台作业,以自动将外部参考数据检索到应用程序中。我有...

c# asp.net-mvc hangfire
1个回答
0
投票

我将采用制作装饰AutomaticRetryAttribute的自定义属性的方法:

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