У меня есть повторяющаяся работа, которая вызывается при запуске. Он должен вызывать PlaceOrder () каждые 20 секунд.
Задание выглядит следующим образом
RecurringJob.AddOrUpdate<MethodCaller>(a => a.PlaceOrder(), "*/20 * * * * *");
Метод PlaceOrder () вызывает RevokeOrder () с задержкой в 5 секунд.
Методы
public void PlaceOrder()
{
DateTimeOffset d = DateTimeOffset.Now;
Debug.WriteLine("PLACED : {0}", d);
Task.Delay(5000).ContinueWith(t => RevokeOrder());
}
public void RevokeOrder()
{
DateTimeOffset d = DateTimeOffset.Now;
Debug.WriteLine("REVOKED : {0}",d);
}
Проблема заключается в том, что оба метода вызываются каждые 15 секунд или иногда каждые 30 секунд вместо 20.
Журналы:
PLACED : 1:59:27
REVOKED : 1:59:32
PLACED : 1:59:42
REVOKED : 1:59:47
PLACED : 2:00:12
REVOKED : 2:00:17
PLACED : 2:00:27
REVOKED : 2:00:32
PLACED : 2:00:43
REVOKED : 2:00:48
Я хочу, чтобы методы PlaceOrder () и RevokeOrder () вызывались каждые 20 секунд. Но между ними должна быть задержка в 5 секунд. Как мне это исправить?