Как вызвать вторую повторяющуюся работу через минуту после первой?

У меня две постоянные работы.

Первый вызывает MethodOne () каждые 20 секунд.

Второй вызывает MethodTwo () каждые 20 секунд.

Я хочу, чтобы второй запускался через 1 минуту после первого метода, чтобы они никогда не запускались одновременно.

в настоящее время это мой код. Это не работает, потому что обе работы запускаются одновременно.

     RecurringJob.AddOrUpdate<MethodCaller>(a => a.MethodOne(), "*/20 * * * * *"); 
     Thread.Sleep(60000);
     RecurringJob.AddOrUpdate<MethodCaller>(a => a.MethodTwo(), "*/20 * * * * *");

И MethodOne (), и MethodTwo () недействительны. У них обоих одна строка кода.

     Debug.Writeline("Method Called");

person Guga Todua    schedule 31.03.2020    source источник
comment
Thread.Sleep(60000); Ой!   -  person InBetween    schedule 31.03.2020


Ответы (1)


Использование обычного System.Threading.Timer вы можете указать время и период отдельно. Таким образом, у вас может быть один и тот же период, но с разными задержками. Не знаком с Hangfire, поэтому я не могу предложить, как использовать это, чтобы сделать то же самое.

Другой вариант - позволить первому заданию запускать второе задание.

person JonasH    schedule 31.03.2020