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();
}
}