2016-08-16 5 views
3

У меня есть ряд задач, которые мне нужно запускать каждые 20 минут. Я могу добиться этого в Hangfire, используя выражение cron. RecurringJob.AddOrUpdate(() => /* my method */, "*/20 * * * *")Как получить планировщик заданий Hangfire, чтобы пошатнуть мои 20-минутные интервальные задания

Проблема в том, что все мои задачи будут работать в одно и то же время, например. 00:00, 00:20, 00:40, 01:00

Кто-нибудь знает способ пошатывания 20-минутных интервальных заданий без каких-либо ручных вмешательств?

Я так же, как замедленное воспламенение для выполнения заданий каждые 20 минут с момента их создания я, ничего особенного :)

ответ

1

Я бы попробовать это: Во-первых, изменить свое дополнение или обновление, чтобы задать работу ID:

RecurringJob.AddOrUpdate("some-id",() => /* my method */, "*/20 * * * *"); 

с последующим

RecurringJob.Trigger("some-id"); 

To run a recurring job now, call the Trigger method.

ОБНОВЛЕНИЕ: как насчет замедленной работы, а не повторяющейся работы? Ваш «мой метод» создает новую задержанную работу в конце (рекурсия), которая запускается через 20 минут. Вы по-прежнему будете использовать метод Trigger для первого запуска.

+0

Это приведет к немедленному запуску метода, который хорош, но затем он будет возвращаться к своим старым путям на 20-минутной отметке (00, 20, 40) каждый час. – Jimbo

 Смежные вопросы

  • Нет связанных вопросов^_^