Я использую Hangfire v1.7.9 и пытаюсь настроить серию повторяющихся фоновых заданий в моем приложении MVC 5 для автоматизации извлечения внешних справочных данных в приложение. Я проверил это с помощью одной задачи, и это прекрасно работает, но я хотел бы, чтобы администраторы системы могли настраивать параметры атрибута Attempts
и DelayInSeconds
, связанные с методом, вызываемым в этих фоновых заданиях.
AutomaticRetryAttribute
утверждает, что вы должны использовать ...
... константное выражение, выражение typeof или выражение создания массива типа параметра атрибута
... что из того, что я прочитал, типично для всех атрибутов. Однако это означает, что я не могу достичь своей цели, установив значение свойства в другом месте, а затем сослаться на него в классе, содержащем метод, который я хочу запустить.
Кроме того, оно не выглядит как любой способ настроить автоматические свойства c retry в методах BackgroundJob.Enqueue
или RecurringJob.AddOrUpdate
. Наконец, я посмотрел, можно ли использовать заданный c счетчик повторов для каждой именованной очереди, но, увы, единственные свойства очередей Hangfire, которые вы можете установить, - это их имена в классе BackgroundJobServerOptions
при инициализации сервера Hangfire.
Я исчерпал каждую авеню здесь? Единственное, о чем я могу думать, - это создать собственную реализацию AutomaticRetryAttribute и установить значения во время компиляции с помощью int enum, хотя это само по себе создаст проблему в том смысле, что я необходимо предоставить определенный список каждого из значений, которые пользователь должен будет выбрать. Поскольку я хотел, чтобы количество повторных попыток конфигурировалось от 5 минут до 1440 минут (24 часа), я действительно не хочу огромных, громоздких enum : int
с каждым доступным значением. Кто-нибудь когда-либо сталкивался с этой проблемой, или это то, что я должен отправить в качестве запроса на Hangfire GitHub?