c#之quartz任务调度的使用
程序员文章站
2022-04-09 08:37:15
这里讲下,quartz这种任务调度程序的简单使用 这是使用的quartz的3.x 版本 2.x 版本与此稍有区别,可以在网上查看2.x版本教程 使用语言为c# quartz的使用分为几个步骤 其中2步骤也可以放到步骤5后面 另外,别忘记在nuget管理器中引入quartz 代码如下 运行程序,效果图 ......
这里讲下,quartz这种任务调度程序的简单使用
这是使用的quartz的3.x 版本
2.x 版本与此稍有区别,可以在网上查看2.x版本教程
使用语言为c#
quartz的使用分为几个步骤
- 创建一个ischedulerfactory,然后并且获取 scheduler
- 启动 scheduler
- 创建 job 任务
- 创建 trigger 触发器
- 使用触发器规划执行任务( tell quartz to schedule the job using our trigger)
其中2步骤也可以放到步骤5后面
另外,别忘记在nuget管理器中引入quartz
代码如下
class program { /// <summary> /// 入口程序 /// </summary> /// <param name="args"></param> static void main(string[] args) { run(); console.readkey(); } /// <summary> /// 任务调度的使用过程 /// </summary> /// <returns></returns> public async static task run() { // 1.创建scheduler的引用 ischedulerfactory schedfact = new stdschedulerfactory(); ischeduler sched = await schedfact.getscheduler(); //2.启动 scheduler await sched.start(); // 3.创建 job ijobdetail job = jobbuilder.create<simplejob>() .withidentity("job1", "group1") .build(); // 4.创建 trigger itrigger trigger = triggerbuilder.create() .withidentity("trigger1", "group1") .withsimpleschedule(x => x.withintervalinseconds(5).repeatforever()) .build(); // 5.使用trigger规划执行任务job await sched.schedulejob(job, trigger); } } /// <summary> /// 任务 /// </summary> public class simplejob : ijob { public virtual task execute(ijobexecutioncontext context) { return console.out.writelineasync($"job工作了 在{datetime.now}"); } }
运行程序,效果图如下:
每5秒执行一次
另外,在实际项目使用中,可以进行把上面步骤拆开,封装进行使用
例如,可以把步骤1,步骤2封装到一起,即用来产生 scheduler
把 步骤3,步骤4,步骤5 封装到一起,用来给不同的任务 scheduler(相当于注册不同的 job ,trigger)
另外,还有更多的quartz的用法
这里附上继续学习网址:
推荐阅读
-
C#基于Quartz.NET实现任务调度并部署Windows服务
-
C#多线程学习之(四)使用线程池进行多线程的自动管理
-
C#多线程学习之(五)使用定时器进行多线程的自动管理
-
详解.NET Core使用Quartz执行调度任务进阶
-
详解.NET Core使用Quartz执行调度任务进阶
-
详解.NET Core使用Quartz执行调度任务进阶
-
Linux任务调度进程crond命令的使用方法和注意事项
-
C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是...
-
springboot+Quartz实现任务调度的示例代码
-
Django异步任务之Celery的基本使用