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

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

.NET MVC 中的示例:

ReportJob.cs

using Quartz;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web; namespace Quartz研究.MyJob.GetWxQdSubMchId
{
[DisallowConcurrentExecution]
public class ReportJob : IJob
{ public Task Execute(IJobExecutionContext context)
{ return Task.Run(() =>
{ foo(); }); } public void foo()
{
try
{
var reportDirectory = string.Format("~/reports/{0}/", DateTime.Now.ToString("yyyy-MM"));
reportDirectory = System.Web.Hosting.HostingEnvironment.MapPath(reportDirectory);
if (!Directory.Exists(reportDirectory))
{
Directory.CreateDirectory(reportDirectory);
}
var dailyReportFullPath = string.Format("{0}report_{1}.log", reportDirectory, DateTime.Now.Day);
var logContent = string.Format("{0}==>>{1}{2}", DateTime.Now, "create new log.", Environment.NewLine);
File.AppendAllText(dailyReportFullPath, logContent); }
catch (Exception ex)
{
//日志
} } }
}

--

ReportJobScheduler.cs

using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace Quartz研究.MyJob.GetWxQdSubMchId
{
public class ReportJobScheduler
{
/// <summary>
/// 创建计划任务
/// </summary>
public static async void Start()
{ try
{
string thisJob = "ReportJob"; string groupName = "gp"+ thisJob;
string jobName = "job" + thisJob;
string triggerName = "trigger" + thisJob; // 创建作业调度池
ISchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler(); // 创建作业
IJobDetail job = JobBuilder.Create<ReportJob>()
.WithIdentity(jobName, groupName)
.Build(); // 创建触发器,每10s执行一次
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity(triggerName, groupName)
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds()
.RepeatForever())
.Build(); // 加入到作业调度池中
await scheduler.ScheduleJob(job, trigger); // 开始运行
await scheduler.Start();
}
catch (Exception ex)
{
//日志
} } }
}

--

Application_Start()

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing; namespace Quartz研究
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{ Quartz研究.MyJob.GetWxQdSubMchId.ReportJobScheduler.Start(); AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
}

--

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. python预课04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习

    列表,元组 #list l1 = [1, 2, 3, '高弟弟'] #定义一个列表 #增 l1.append("DSB") #最后增加"DSB"的元素 #删 l ...

  2. 如何获取gitee上的项目?

    对于没有使用过github/gitee的朋友来说,估计是有点懵. 下面举个例子,比如获取我的gitee上的python接口自动化测试框架 访问主页:https://gitee.com/uncleyon ...

  3. .prop()和.attr()的区别

    具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

  4. MD5加密封装

    1.固定返回固定长度字符串(16位或者32位) /// <summary> /// 用MD5加密字符串,可选择生成16位或者32位的加密字符串 /// </summary> / ...

  5. Xcode 创建.a和framework静态库(转)

    最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种.iOS中的静 ...

  6. Json提取器(Json Extractor)

    Variable names:保存的变量名,后面使用${Variable names}引用 JSON Path  expressions:调试通过的json path表达式 Match Numbers ...

  7. linux mustache bash 实现mo 做为docker容器运行动态配置工具数组的处理

    前面有说过关于使用mo 工具的简单配置使用,但是实际中我们可能存在比较复杂的数据处理,比如数组,mo 可以进行数组的处理,但是在测试的过程中,一直失败,查看了官方的demo以及帮助命令发现可以通过参数 ...

  8. smartnic

    19年趋势: Intel® 2019网络技术研讨会圆满落幕 SANTOS: Flow and HQoS Acceleration Over DPDK Using Intel Programmable ...

  9. Navicat自动断开连接处理方式

    问题描述 使用Navicat连接mysql后,如果一段时间不操作,那么会再次操作时会提示无响应,每次都这样确实折磨人,大大降低了工作效率! 问题解决 关闭连接→右键连接→连接属性 将上述心跳时间设置为 ...

  10. 干货收藏 | Java 程序员必备的一些流程图

    阅读本文大概需要 6 分钟. 转载自:https://juejin.im/post/5d214639e51d4550bf1ae8df 1.Spring 的生命周期 Spring 作为当前 Java 最 ...