项目现状:
有若干定时程序需要自启动运行,为了简便程序部署等问题,采取这种办法把定时程序集中管理到webapi中跟随api发布
代码架构介绍:
新建一个类库,类库引用Quartz(Quartz.2.3.2),每个需要统一管理的程序新建一个文件,其中包括处理程序类和接口
类库中做一个接口静态类,便于api的Application_Start方法调用
其中JobScheduler类的静态方法如下:
public static void Start()
{
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = factory.GetScheduler();
/*-------------计划任务代码实现------------------*/
//创建任务1
IJobDetail job = JobBuilder.Create<CityData.CityDataCaiji>().Build();
//创建触发器1
ITrigger trigger = TriggerBuilder.Create().WithIdentity("TimeTrigger", "TimeGroup")
.WithSimpleSchedule(t => t
.WithIntervalInMinutes(5)
.RepeatForever())
.Build();
//创建任务2
IJobDetail job1 = JobBuilder.Create<DataBaseBackup.DatabaseBackup>().Build();
//创建触发器2
ITrigger trigger1 = TriggerBuilder.Create().WithIdentity("TimeTrigger1", "TimeGroup1")
.WithSimpleSchedule(t => t
.WithIntervalInMinutes(10)
.RepeatForever())
.Build();
//添加任务及触发器至调度器中
scheduler.ScheduleJob(job, trigger);
scheduler.ScheduleJob(job1, trigger1);
scheduler.Start();
}
每个定时程序分别差功能键自己的任务和触发器,由scheduler统一调度。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南