using System; using System.Threading.Tasks; namespace ZeroLevel.Services.Shedulling { public interface IExpirationAsyncSheduller : IDisposable { /// /// Добавление задачи с указанием времени по истечении которого она должна быть исполнена /// long Push(TimeSpan timespan, Func callback); /// /// Добавление задачи с указанием даты/времени когда она должна быть исполнена /// long Push(DateTime date, Func callback); /// /// Удаляет событие по его идентификатору /// /// Идентификатор события bool Remove(long key); /// /// Очистка планировщика /// void Clean(); /// /// Приостановка работы планировщика (не препятствует добавлению новых заданий) /// void Pause(); /// /// Возобновление работы планировщика /// void Resume(); } }