Повторяющаяся работа Hangfire начинается не сразу - PullRequest
1 голос
/ 14 июня 2019

Я использую выражение cron для создания повторяющейся работы.Я создаю выражение для выполнения каждые полчаса в 3 дня недели.Выполнение правильное, но время его запуска не является правильным.Предположим, что создание работы происходит в 14: 16, задание начинает выполняться в 14:30.Если я настрою выполнение 2:20, задание также начнется в 14:30, в идеале я хотел бы начать в 14:20 и повторять его каждые полчаса.В настоящее время я не нахожу способ начать в 2:25 и повторяться каждые полчаса.

Может кто-нибудь сообщить мне, почему это происходит, когда используется выражение cron?Есть ли способ идентифицировать этот шаблон, чтобы я мог настроить время выполнения.Выражение cron: "* / 30 * * 1,2 1,2,3"

@ cocowalla: я использую sql server в качестве бэкэнда.Я копирую строку подключения точно так, как это указано в документации по Hangfire, но не рассматривал опрос.Есть ли какая-то другая причина кроме этого?

1 Ответ

1 голос
/ 15 июня 2019

Из документов бэкэнд SQL опрашивается, поэтому точность времени запуска может быть ограничена:

Один из главных недостатков реализации хранилища заданий необработанного SQL Server - этоиспользует технику опроса для получения новых рабочих мест.Начиная с Hangfire 1.7.0, можно использовать TimeSpan.Zero в качестве интервала опроса, когда установлена ​​опция SlidingInvisibilityTimeout.

{
    SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
    QueuePollInterval = TimeSpan.Zero
};

GlobalConfiguration.Configuration.UseSqlServerStorage("<name or connection string>", options);```

...