简单的调度程序,定时任务(支持Cron表达式),延时队列,不支持分布式,支持失败重试,支持设置失败次数 A simple scheduler, timed tasks (supports Cron expressions), delayed queues, does not support distributed, delayed queues support failure retry, support for setting the number of failures
$ dotnet add package MiniScheduler简单的任务调度程序,定时任务(支持Cron表达式),延时队列,不支持分布式,延时队列支持失败重试,支持设置失败次数
软件架构说明
static void Main(string[] args)
{
IDelayQueue delayQueue = MiniSchedulerFactory.CreateDelayQueue(new QueueOptions() { EnableRetry = true });
delayQueue.Enqueue(new QueueItem()
{
TaskName = "Test01",
DelayTime = TimeSpan.FromSeconds(10),
DelayAction = () =>
{
Console.WriteLine("Test01 Action {0}", DateTime.Now.ToString());
return true;
}
});
delayQueue.Enqueue(new QueueItem<string>()
{
TaskName = "Test02",
DelayTime = TimeSpan.FromSeconds(16),
ActionData = "TestData",
EnableRetry = true,
DelayAction = (str) =>
{
Console.WriteLine("Test02 Action: {0}, Data: {1}", DateTime.Now.ToString(), str);
return false;
}
});
//定时任务
IScheduleTask schedule = MiniSchedulerFactory.CreateSchedule();
schedule.AddTask(new ScheduleTaskItem("10-30/5 * * * * ?", () =>
{
Console.WriteLine("Schedule Task 1: {0}", DateTime.Now.ToString());
return true;
}));
List<int> list = new List<int>(){ 1 };
schedule.AddTask(new ScheduleTaskItem("5 * * * * ?", list, (data) =>
{
Console.WriteLine("Schedule Task 2: {0}", DateTime.Now.ToString());
return true;
}));
Console.ReadLine();
}