参考了:https://www.cnblogs.com/personblog/p/11277527.html

https://www.jianshu.com/p/b8e7e4deb60a

.NET MVC 中的示例:

ReportJob.cs

  1. using Quartz;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Web;
  9.  
  10. namespace Quartz研究.MyJob.GetWxQdSubMchId
  11. {
  12. [DisallowConcurrentExecution]
  13. public class ReportJob : IJob
  14. {
  15.  
  16. public Task Execute(IJobExecutionContext context)
  17. {
  18.  
  19. return Task.Run(() =>
  20. {
  21.  
  22. foo();
  23.  
  24. });
  25.  
  26. }
  27.  
  28. public void foo()
  29. {
  30. try
  31. {
  32. var reportDirectory = string.Format("~/reports/{0}/", DateTime.Now.ToString("yyyy-MM"));
  33. reportDirectory = System.Web.Hosting.HostingEnvironment.MapPath(reportDirectory);
  34. if (!Directory.Exists(reportDirectory))
  35. {
  36. Directory.CreateDirectory(reportDirectory);
  37. }
  38. var dailyReportFullPath = string.Format("{0}report_{1}.log", reportDirectory, DateTime.Now.Day);
  39. var logContent = string.Format("{0}==>>{1}{2}", DateTime.Now, "create new log.", Environment.NewLine);
  40. File.AppendAllText(dailyReportFullPath, logContent);
  41.  
  42. }
  43. catch (Exception ex)
  44. {
  45. //日志
  46. }
  47.  
  48. }
  49.  
  50. }
  51. }

--

ReportJobScheduler.cs

  1. using Quartz;
  2. using Quartz.Impl;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Web;
  7.  
  8. namespace Quartz研究.MyJob.GetWxQdSubMchId
  9. {
  10. public class ReportJobScheduler
  11. {
  12. /// <summary>
  13. /// 创建计划任务
  14. /// </summary>
  15. public static async void Start()
  16. {
  17.  
  18. try
  19. {
  20. string thisJob = "ReportJob";
  21.  
  22. string groupName = "gp"+ thisJob;
  23. string jobName = "job" + thisJob;
  24. string triggerName = "trigger" + thisJob;
  25.  
  26. // 创建作业调度池
  27. ISchedulerFactory factory = new StdSchedulerFactory();
  28. IScheduler scheduler = await factory.GetScheduler();
  29.  
  30. // 创建作业
  31. IJobDetail job = JobBuilder.Create<ReportJob>()
  32. .WithIdentity(jobName, groupName)
  33. .Build();
  34.  
  35. // 创建触发器,每10s执行一次
  36. ITrigger trigger = TriggerBuilder.Create()
  37. .WithIdentity(triggerName, groupName)
  38. .StartNow()
  39. .WithSimpleSchedule(x => x
  40. .WithIntervalInSeconds()
  41. .RepeatForever())
  42. .Build();
  43.  
  44. // 加入到作业调度池中
  45. await scheduler.ScheduleJob(job, trigger);
  46.  
  47. // 开始运行
  48. await scheduler.Start();
  49. }
  50. catch (Exception ex)
  51. {
  52. //日志
  53. }
  54.  
  55. }
  56.  
  57. }
  58. }

--

Application_Start()

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Http;
  6. using System.Web.Mvc;
  7. using System.Web.Optimization;
  8. using System.Web.Routing;
  9.  
  10. namespace Quartz研究
  11. {
  12. public class MvcApplication : System.Web.HttpApplication
  13. {
  14. protected void Application_Start()
  15. {
  16.  
  17. Quartz研究.MyJob.GetWxQdSubMchId.ReportJobScheduler.Start();
  18.  
  19. AreaRegistration.RegisterAllAreas();
  20. GlobalConfiguration.Configure(WebApiConfig.Register);
  21. FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  22. RouteConfig.RegisterRoutes(RouteTable.Routes);
  23. BundleConfig.RegisterBundles(BundleTable.Bundles);
  24. }
  25. }
  26. }

--

c# .net framework 4.5.2 , Quartz.NET 3.0.7的更多相关文章

  1. Quartz.NET 3.0 正式发布

    Quartz.NET是一个强大.开源.轻量的作业调度框架,你能够用它来为执行一个作业而创建简单的或复杂的作业调度.它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等.在2017 ...

  2. Quartz.net 2.0的使用说明

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于WinForm和ASP.NET应用中.它提供了巨大的灵活性而不牺牲 ...

  3. Quartz 2.3.0 升级感受

    Quartz 2.3.0 发布,Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中.它提供了巨大的灵 活性而不牺牲简单性.你能够用它来为执行一个作业而创建简 ...

  4. Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)

    原文:Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一) 前端时间,接到领导任务,写了一个调度框架.今天决定把心路历程记 ...

  5. 关于Quartz .NET(V3.0.7)的简要说明

    目录 0. 任务调度 1. Quartz .NET 1.1 基本概念 1.2 主要接口和对象 2. 使用示例 2.0 准备工作 2.1 每间隔一定时间间隔执行一次任务 2.3 某天的固定时间点执行任务 ...

  6. ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)

    ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3) 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求 ...

  7. 作业调度框架 Quartz.NET 2.0 StepByStep

    注:目前网上诸多介绍Quartz.net的文章,甚至Quartz.net官网上的Tutorial都是1.0版本的,而这个项目在2.0版本对项目进行了比较大规模的修改,使得原有的很多例子都不能运行,故写 ...

  8. Quartz.NET 2.0 作业调度框架使用

    Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不 ...

  9. Spring 4.2.5 + Quartz 2.2.0整合

    jar包使用的Maven库管理的,在这就不罗列了,注意下只有spring3.x以上的版本才支持quartz2.x的版本. 配置文件: <?xml version="1.0" ...

随机推荐

  1. beforeRouteEnter 与 beforeRouteUpdate(watch $route 对象) 的区别

    项目 区别 适用场景 网址 beforeRouteEnter beforeRouteEnter 守卫 不能 访问 this,因为守卫在导航确认前被调用,因此即将登场的新组件还没被创建.不过,你可以通过 ...

  2. class struct Equals

    { class clsA { private int _i; public int I { set { _i = value; } get { return _i; } } } struct strc ...

  3. Linux 防火墙 | Linux 服务器如何开放端口 配置防火墙

    sudo ufw status(如果你是root,则去掉sudo,ufw status)可检查防火墙的状态,我的返回的是:inactive(默认为不活动).sudo ufw version防火墙版本: ...

  4. Magento2 UI components概述

    UI components 概述Magento UI components 是用来展示不同的UI元素,比如表,按钮,对话框等.他们被用于简单灵活的交互界面渲染.Components被用来渲染结果界面, ...

  5. iOS的事件派发

    dispatchPreprocessedEventFromEventQueue 先定位:hittest * thread #1, queue = 'com.apple.main-thread', st ...

  6. spring boot是一个应用框架生成工具?

    spring boot是一个应用框架生成工具?

  7. 修改mysql 8.0.16 root 密码--mac

    https://blog.csdn.net/HECTOR_1368391900/article/details/90732097 https://my.oschina.net/u/3251146/bl ...

  8. SQL Server 定期归档大表历史数据

    很少有开发会考虑到数据归档的问题已经数据增长的问题,当程序运行一段时间后,就会出现各种问题,部分问题可以修改SQL语句或使用索引来解决,但如果SQL语句无法修改,糟糕的SQL语句无法使用索引,归档历史 ...

  9. 数组排序代码,冒泡排序&快速排序&选择排序

    冒泡排序: for(var i=0;i<arr.length-1;i++){ for(var j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1 ...

  10. 【JZOJ6245】【20190627】A

    题目 给定一颗\(n\)个点的树,边权为1,并给出\(\{w_i\}\)满足\(w_0=0\) \[ f(i) = \sum_{j=1}^{n} w_{dis(i,j)} \] 依次输出每一个\(f_ ...