经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
.NET中Quartz任务调度器的简单应用实例
来源:cnblogs  作者:编码养家  时间:2018/11/22 10:26:40  对本文有异议

1.首先从NuGet中安装Quartz,安装最新版本就OK

2.新建一个Job类实现Quart中的IJob接口用于执行业务逻辑,代码如下:

  1. class CheckUpdateJob : IJob
  2. {
  3. public async Task Execute(IJobExecutionContext context)
  4. {
  5. //在此处实现业务
  6. }
  7. }

3.新建一个任务执行类用于启动任务,代码如下:

  1. class JobController
  2. {
  3. //调度器
  4. IScheduler scheduler;
  5. //调度器工厂
  6. ISchedulerFactory factory;
  7. //执行时间间隔
  8. private int checkInternal = int.Parse(ConfigurationManager.AppSettings["CheckInternal"]);
  9. public async Task Start()
  10. {
  11. factory = new StdSchedulerFactory();
  12. scheduler = await factory.GetScheduler();//创建一个任务
  13. IJobDetail jobCheck = JobBuilder.Create<CheckUpdateJob>().WithIdentity("check", "other").Build();
  14. //创建一个触发器
  15. ITrigger checkTrigger = TriggerBuilder.Create()
  16. .WithIdentity("check", "other")
  17. .WithSchedule(SimpleScheduleBuilder.Create().WithIntervalInSeconds(checkInternal).RepeatForever())
  18. .StartNow()
  19. .Build();
  20. //把任务和触发器加入调度器中
  21. await scheduler.ScheduleJob(jobCheck, checkTrigger);
  22. //开始执行
  23. await scheduler.Start();
  24. }
  25. }

对于标黄色部分做简单说明

CheckUpdateJob:毫无疑问就是你的Job类。从源码里面看必须是需要实现IJob接口的类,源码如图:

 

check:自定义的Job别名,当有很多的Job需要执行的时候,可以使用别名区分。

other:自定义分组别名,当你有多Job的时候可以把Job进行分组,例如:订单,数据清理等;当你需要对Job管理的时候便会派上用场。

ITrigger 中的check,other道理同上

checkInternal:这个参数为轮询间隔秒数,这里我只做个简单间隔秒数轮询方式执行Job,其内置了丰富的方式。比如:每月的第几号,每周的星期几,上午或者下午时间点等

 其他更多的应用可自行度娘或者看官方文档吧!

4.最后调用Start()即可,代码如下:

  1. static void Main(string[] args)
  2. {
  3. JobController controller = new JobController();
  4. var t = controller.Start();
  5. t.Wait();
  6. Console.Read();
  7. }

 

 

 

  

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号