Quartz.net使用记录
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节点必须放在最上面,否则会出现‘服务没有响应控制功能’错误,不能启动服务。
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net debug="false">
<!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
<!-- Print only messages of level DEBUG or above in the packages -->
<logger name="ServiceLogger">
<level value="INFO" />
<appender-ref ref="SysAppender" />
</logger> <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
</log4net>
非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 <quartz> configuration section
# or in quartz properties file
# Configuration section has precedence quartz.scheduler.instanceName = ServerScheduler # configure thread pool info
quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz
quartz.threadPool.threadCount =
quartz.threadPool.threadPriority = Normal # job initialization plugin handles our xml reading, without it defaults are used
quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz
quartz.plugin.xml.fileNames = ~/quartz_jobs.xml # export this server to remoting context
quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz
quartz.scheduler.exporter.port =
quartz.scheduler.exporter.bindName = QuartzScheduler
quartz.scheduler.exporter.channelType = tcp
quartz.scheduler.exporter.channelName = httpQuartz
<?xml version="1.0" encoding="utf-8" ?> <!-- This file contains job definitions in schema version 2.0 format --> <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> <processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives> <schedule> <job>
<name>Job</name>
<group>demoGroup</group>
<description>JobDemo服务描述</description>
<job-type>WinService.Job,WinService</job-type>
<durable>true</durable>
<recover>false</recover>
</job> <trigger>
<cron>
<name>JobTrigger</name>
<group>JobTriggerGroup</group>
<description>Trigger描述</description>
<job-name>Job</job-name>
<job-group>demoGroup</job-group>
<cron-expression>/ * * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
新建类,实现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
Quartz.net使用记录的更多相关文章
- 【Quartz】问题记录注意事项【四】
记录一:queartz 在同时启动多个任务是,触发器名称不能设置一致,不然第二次启动会不成功 记录二:quartz 在使用任务与触发器分离写法时,任务必须要带(.StoreDurably()) IJo ...
- quartz的一些记录
定时任务总会遇到任务重叠执行的情况,比如一个任务1分钟执行一次,而任务的执行时间超过了1分钟,这样就会有两个相同任务并发执行了.有时候我们是允许这种情况的发生的,比如任务执行的代码是幂等的,而有时候我 ...
- Quartz 基本概念及原理
最近项目要用quartz,所以记录一下: 概念 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使 ...
- Quartz-2D绘图之图形上下文详解
上一篇文章大概描述了下Quartz里面大体所包含的东西,但是对具体的细节实现以及如何调用相应API却没有讲.这篇文章就先讲讲图形上下文(Graphics Context)的具体操作. 所谓Graphi ...
- iPhone之Quartz 2D系列--图形上下文(2)(Graphics Contexts)
以下几遍关于Quartz 2D博文都是转载自:http://www.cocoachina.com/bbs/u.php?action=topic&uid=38018 iPhone之Quartz ...
- quartz 定时任务的实现
需求:项目中有一个任务,当时间到了会向移动端通过百度云推送推送信息,之前很傻叉的是写一个多线程一直扫描,每分钟扫描一次,比对当前时间和任务时间是否一样,结果把 项目跑死了,项目中用了一个简单的quar ...
- Quartz 2D - 图形上下文(Graphics Contexts)
一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息 ...
- Quartz.NET学习系列
Quartz.NET它是一个开源的任务调度引擎,对于周期性任务,持久性任务提供了很好的支持,并且支持持久性.集群等功能. 这是什么对我来说Quartz.NET学习记录: 源代码下载http://yun ...
- Quartz 2D编程指南(2) - 图形上下文
一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息 ...
随机推荐
- python numpy 使用笔记 矩阵操作
(原创文章转载请标注来源) 在学习机器学习的过程中经常会用到矩阵,那么使用numpy扩展包将是不二的选择 建议在平Python中用多维数组(array)代替矩阵(matrix) 入门请考 http:/ ...
- 基于Redis的CAS服务端集群
为了保证生产环境CAS(Central Authentication Service)认证服务的高可用,防止出现单点故障,我们需要对CAS Server进行集群部署. CAS的Ticket默认是以Ma ...
- 初窥struts2(二)OGNL表达式
Struts2总结 Struts2完整的处理流程: 1 客户端发送请求,交给struts2控制器(StrutsPrepareAndExecuteFilter). 2 Filter控制器进行请求过滤 ...
- 用C#实现网络爬虫(二)
上一篇<用C#实现网络爬虫(一)>我们实现了网络通信的部分,接下来继续讨论爬虫的实现 3. 保存页面文件 这一部分可简单可复杂,如果只要简单地把HTML代码全部保存下来的话,直接存文件就行 ...
- Android Broadcaset 简介
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的Broadcast进行过滤接收并响应的一类组件.可以使用Broad ...
- linux下删除修改时间为某天之前的文件
time_file #新建一个标识文件,修改时间为2014年4月9日0点0分 find . ! -cnewer time_file | xargs rm #删除最后修改时间在上述标识文件之前的所有文件
- BeautifulSoup解析非标准HTML的问题
发现问题: BeautifulSoup版本:4.3.2 在用BeautifulSoup.find_all()搜索HTML时,遇到下面的代码: <a href="/shipin/dong ...
- 查找最小的K个元素,使用最大堆。
查找最小的K个元素,使用最大堆,具体代码如下: #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace st ...
- 【转】android蓝牙开发---与蓝牙模块进行通信--不错
原文网址:http://www.cnblogs.com/wenjiang/p/3200138.html 近半个月来一直在搞android蓝牙这方面,主要是项目需要与蓝牙模块进行通信.开头的进展很顺利, ...
- 【动态规划】HDU 1081 & XMU 1031 To the Max
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1081 http://acm.xmu.edu.cn/JudgeOnline/problem.php?i ...