博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Quartz.net使用记录
阅读量:6474 次
发布时间:2019-06-23

本文共 3628 字,大约阅读时间需要 12 分钟。

1、引入dll文件:

  nuget控制台:安装quartz:Install-Package Quartz

         安装log4net:Install-Package log4net,这里使用log4net记录一些windows服务运行日志,以便查看。

  安装完成,会添加4个引用,分别是:Quartz.dll、Common.Logging.dll、Common.Logging.Core.dll、log4net.dll。

2、log4net的相关配置:

  config配置:非web项目是在app.config文件中,加入下面代码。注意:configSections节点必须放在最上面,否则会出现‘服务没有响应控制功能’错误,不能启动服务。

  非web项目在AssemblyInfo.cs加入(web项目一般在global文件中),log4net的加载配置:

//加载log4配置[assembly:log4net.Config.XmlConfigurator()]

   使用时先得到log对象:"ServiceLogger"是配置文件中的logger配置名。

log4net.ILog log = log4net.LogManager.GetLogger("ServiceLogger");   log.Info(DateTime.Now+":定时任务执行");

3、Quartz.Net的配置:

  2个文件:quartz.config、quartz_jobs.xml,生成时要选择始终复制。

  在线cron生成:http://cron.qqe2.com/

# You can configure your scheduler in either 
configuration section# or in quartz properties file# Configuration section has precedencequartz.scheduler.instanceName = ServerScheduler# configure thread pool infoquartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartzquartz.threadPool.threadCount = 10quartz.threadPool.threadPriority = Normal# job initialization plugin handles our xml reading, without it defaults are usedquartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartzquartz.plugin.xml.fileNames = ~/quartz_jobs.xml# export this server to remoting contextquartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartzquartz.scheduler.exporter.port = 555quartz.scheduler.exporter.bindName = QuartzSchedulerquartz.scheduler.exporter.channelType = tcpquartz.scheduler.exporter.channelName = httpQuartz
true
Job
demoGroup
JobDemo服务描述
WinService.Job,WinService
true
false
JobTrigger
JobTriggerGroup
Trigger描述
Job
demoGroup
0/2 * * * * ?

  新建类,实现IJob接口,在Execute方法中写要定时执行的任务代码。

  开始与关闭任务:这是在windows服务开始时,同时开始任务的执行。

public partial class ServiceQuartz : ServiceBase    {        private log4net.ILog log;        private ISchedulerFactory schedulerFactory;        private IScheduler scheduler;        public ServiceQuartz()        {            InitializeComponent();            log = log4net.LogManager.GetLogger("ServiceLogger");            schedulerFactory = new StdSchedulerFactory();            scheduler = schedulerFactory.GetScheduler();        }        protected override void OnStart(string[] args)        {            log.Info("------------------定时任务已启动------------------------"+DateTime.Now);            scheduler.Start();        }        protected override void OnStop()        {            log.Info("-------------------------定时任务被关闭了---------------"+DateTime.Now);            scheduler.Shutdown();        }    }

 

4、服务安装与卸载:

  cmd要以管理员身份运行

  安装:C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe D:Project\QuartzTest\WinService\bin\Release\WinService.exe

  卸载:sc delete servicequartz

转载于:https://www.cnblogs.com/zhaoyihao/p/5412696.html

你可能感兴趣的文章
三篇文章了解 TiDB 技术内幕 —— 说计算
查看>>
copy strong weak assign的区别
查看>>
OpenCV 入门
查看>>
css 3D transform变换
查看>>
ele表格合并行之后的selection选中
查看>>
正则表达式分解剖析(一文悟透正则表达式)
查看>>
解决UILable标点符号居中的问题
查看>>
HTML5新特性教程
查看>>
SpringBoot 实战 (十七) | 整合 WebSocket 实现聊天室
查看>>
ImageOptim-无损图片压缩Mac版
查看>>
12 Go语言map底层浅析
查看>>
vue-resumer 项目中 element-ui 遇到的 textarea autosize 问题
查看>>
以主干开发作为持续交付的基础
查看>>
PHP扩展库PEAR被攻击,近半年下载者或被影响
查看>>
传统运维团队转型应该注意哪些问题?
查看>>
JavaScript函数(二)
查看>>
Airbnb改进部署管道安全性,规范部署顺序
查看>>
腾讯最大规模裁撤中层干部,让贤年轻人
查看>>
当我们谈性能的时候,我们实际上在谈什么?
查看>>
i4o开源项目增强LINQ索引功能
查看>>