Как создавать повторяющиеся задания Hangfire каждые 10 минут всего за 24 часа - PullRequest
0 голосов
/ 10 июня 2018

Когда у меня новая регистрация клиента, которая не завершает процесс, я отправляю им электронное письмо со следующими шагами.Мне нужно создать работу, которая будет выполняться каждые 10 минут в течение первых 24 часов после регистрации.По истечении этого времени происходит еще один процесс.Я планирую работу следующим образом:

RecurringJob.AddOrUpdate(customerId, () => new NewCustomerProcess().checkNewCustomerStatus(customerId)), "*/10 * * * *");

Если я добавлю время начала работы к классу работы:

private DateTime _jobstart = DateTime.UtcNow;

Могу ли я проверить, что в рамках работы выяснить, когда через 24 часапрошло, а затем удалите задание?

RecurringJob.RemoveIfExists(customerId);

Восстанавливает ли Hangfire класс задания при каждом запуске?

1 Ответ

0 голосов
/ 13 июня 2018

если я правильно понимаю ваш вопрос.

Hangfire каждый раз создает новый экземпляр класса задания.Поэтому, если бы мне нужно было решить эту проблему, я бы передавал DateTime в качестве параметра при каждом создании задания:

RecurringJob.AddOrUpdate(customerId, () => new 
NewCustomerProcess().checkNewCustomerStatus(customerId, DateTime.Now.AddDays(2))), "*/10 * * * *");

А затем в checkNewCustomerStatus сравнивайте с DateTime.Now

      if (DateTime.Now > dateEnqueued)
        {
            //Job is complete
            return;
        }
...