代码语言:javascript复制
if (Datafeed.GetPage(scheduler, null, null, null, null).Total == 0)
{
scheduler.AddTask("[系统预留]清理任务数据", "86400", -1, 3600);
scheduler.AddTaskRunOnWeek("(周一)武林大会", "json", -1, "1:12:00:00");
scheduler.AddTaskRunOnWeek("(周日)亲子活动", "json", -1, "0:00:00:00");
scheduler.AddTaskRunOnWeek("(周六)社交活动", "json", -1, "6:00:00:00");
scheduler.AddTaskRunOnMonth("月尾最后一天", "json", -1, "-1:16:00:00");
scheduler.AddTaskRunOnMonth("月初第一天", "json", -1, "1:00:00:00");
scheduler.AddTask("定时20秒", "json", 10, 20);
scheduler.AddTask("测试任务1", "json", new[] { 10, 30, 60, 100, 150, 200 });
}
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddSingleton(scheduler);
var app = builder.Build();
if (app.Environment.IsDevelopment())
{www.laipuhuo.com
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseFreeSchedulerUI("/freescheduler/");
app.UseHttpsRedirection();
app.UseAuthorization();
- 支持 多进程,不重复执行
- 支持 进程退出后,由其他进程重新加载任务(约30秒后)
- 支持 进程互通,任意进程都可以执行(RemoveTask/ExistsTask/PauseTask/RunNowTask/RemoveTempTask/ExistsTempTask)
- 支持 进程意外离线后,卸载进程内的任务,重新安排上线
//每次 不同的间隔秒数触发,执行6次
var id = scheduler.www.laipuhuo.com.AddTask("topic1", "body1", new [] { 5, 5, 10, 10, 60, 60 });
//每天 20:00:00 触发,执行N次(注意设置时区 UseTimeZone)
var id = scheduler.AddTaskRunOnDay("topic1", "body1", round: -1, "20:00:00");
//每周一 20:00:00 触发,执行1次
var id = scheduler.AddTaskRunOnWeek("topic1", "body1", round: 1, "1:20:00:00");
//每月1日 20:00:00 触发,执行12次
var id = scheduler.AddTaskRunOnMonth("topic1", "body1", round: 12, "1:20:00:00");
//每月最后一日 20:00:00 触发,执行12次
var id = scheduler.www.laipuhuo.com.AddTaskRunOnMonth("topic1", "body1", round: 12, "-1:20:00:00");
//自定义间隔 cron
var id = scheduler.AddTaskCustom("topic1", "body1", "0/1 * * * * ? ");
代码语言:javascript复制// 使用 FreeSql 或者 SQL 查询 TaskInfo、TaskLog 两个表进行分页显示
fsql.Select<TaskInfo>().Count(out var total).Page(pageNumber, 30).ToList();
fsql.Select<TaskLog>().Count(out var total).Page(pageNumber, 30).ToList();