quartz.net使用(通过配置文件进行配置)
在项目Nuget包管理器中搜索:quartz,安装完成之后再项目中引用即可
先定义一个Job,需要实现IJob接口:
public class TestJob : IJob
{
public void Execute(IJobExecutionContext context)
{
log4net.ILog log = log4net.LogManager.GetLogger(typeof(TestJob));
if (log.IsInfoEnabled)
{
log.Info("记录当前时间" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+"\r\n");
}
Console.WriteLine("执行调度任务test"+" --- "+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
配置quartz_jobs.xml(附Cron生成器链接)
<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>
<!--任务名称,同一个group中多个job的name不能相同-->
<name>SimpleJob</name>
<!--任务分组-->
<group>sampleGroup</group>
<!--任务描述-->
<description>Sample job for Quartz Server</description>
<!--完整命名空间的类名及所属程序集名称-->
<job-type>WindowsService.Job.SimpleJob, WindowsService</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<!--任务触发器-->
<trigger>
<!--简单任务的触发器,可以调度用于重复执行的任务-->
<!--<simple>
--><!--触发器名称,同一个分组中的名称必须不同--><!--
<name>sampleSimpleTrigger</name>
--><!--触发器组--><!--
<group>sampleGroup</group>
--><!--描述--><!--
<description>Simple trigger to simply fire sample job</description>
--><!--要调度的任务名称,该job-name必须和对应job节点中的name完全相同--><!--
<job-name>SimpleJob</job-name>
--><!--调度任务(job)所属分组,该值必须和job中的group完全相同--><!--
<job-group>sampleGroup</job-group>
--><!--任务开始时间--><!--
--><!--<start-time>--21T11::+:</start-time>--><!--
<misfire-instruction>SmartPolicy</misfire-instruction>
--><!--任务执行次数 - 为无限次执行--><!--
<repeat-count>-</repeat-count>
--><!--任务触发间隔(毫秒)--><!--
<repeat-interval></repeat-interval>
--><!--每3秒中执行一次--><!--
</simple>-->
<cron>
<name>JobTrigger</name>
<group>JobTriggers</group>
<description>cron trigger</description>
<job-name>SimpleJob</job-name>
<job-group>sampleGroup</job-group>
<!--<start-time>--26T22::+:</start-time>-->
<cron-expression>0/2 * * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
配置quartz.config文件(在此提醒下,配置这个文件文件中会出现红色波浪错误提示,这个不影响最终结果)
# 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
main函数中进行调用
static void Main(string[] args)
{
StdSchedulerFactory std = new StdSchedulerFactory();
IScheduler scheduler = std.GetScheduler();
scheduler.Start();
}
运行结果,每隔两秒输出语句
quartz.net使用(通过配置文件进行配置)的更多相关文章
- Quartz 在 Spring 中如何动态配置时间--转
原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源 ...
- Quartz实现JAVA定时任务的动态配置
什么是动态配置定时任务? 首先说下这次主题,动态配置.没接触过定时任务的同学可以先看下此篇:JAVA定时任务实现的几种方式 定时任务实现方式千人千种,不过基础的无外乎 1.JDK 的Timer类 2. ...
- 使用配置文件来配置JDBC连接数据库
1.管理数据库连接的Class 代码如下: package jdbcTest;import java.sql.Connection;import java.sql.DriverManager;impo ...
- Log4net配置文件一般配置
配置文件一般配置 <?xml version="1.0"?> <configuration> <configSections> <sect ...
- hibernate3整合spring2时hibernate即用注解又用配置文件情况时spring配置文件的配置写法
hibernate只用注解时,spring的配置文件的配置如下 <bean id="dataSource" class="org.apache.commons.db ...
- 01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置
1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下 ...
- shell 环境变量的相关配置文件和配置方法
shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...
- Mybatis-基于配置文件的配置(——纪念这个即将被抛弃的孩子)
虽然内心相信Mybatis基于配置文件的配置早已经在实战之中被注解所遗忘,但是我相信还是会有一小部分人还是需要这种技术去维护原有使用这种方式去搭建的项目. 废话不多说首先使用框架包是不能少的了.导入M ...
- SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池
三.读取外部的资源配置文件并配置数据库连接池 1.读取外部的资源配置文件 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: @Configuration ...
随机推荐
- org.w3c.dom.Element 缺少 setTextContent 步骤
org.w3c.dom.Element 缺少 setTextContent 方法 今天将项目环境由jdk5改为jdk6,eclipse重新编译工程后,却突然出现org.w3c.dom.Element没 ...
- (转)HashMap深入原理解析
[HashMap]深入原理解析 分类: 数据结构 自考 equals与“==”(可以参考自己的另一篇博文) 1,基本数据类型(byte,short,char,int,long,float,double ...
- Spring源码情操陶冶-AbstractApplicationContext#initApplicationEventMulticaster
承接前文Spring源码情操陶冶-AbstractApplicationContext#initMessageSource 约定web.xml配置的contextClass为默认值XmlWebAppl ...
- 流畅python学习笔记:第十五章:上下文管理器
在开始本章之前,我们首先来谈谈try-excep..final模块.在Python中,进行异常保护的最多就是用try..except..final.首先来看下下面的代码.进行一个简单的除法运算.为了防 ...
- 闭包(Closure)基础分析
闭包(Closure) 本文聚焦于回答2个问题: 在全局作用域中,如何读取函数内部的局部变量? 在全局作用域中,如何修改函数内部的局部变量? 变量作用域 JavaScript语言的作用域,一句话概括就 ...
- MATLAB的神经网络工具箱介绍
一.使用matlab2010b以后的版本会有完整的神经网络工具箱,使用nnstart可以调出toolbox,然后选择需要的功能,导入数据,选择训练参数和每层神经元个数,最后训练会输出网络与结果. 二. ...
- 表达式求值(二叉树方法/C++语言描述)(五)
本例中的二叉树图是使用Graphviz绘制的(Graphviz官网),在Ubuntu Linux下可以使用apt-get命令安装它: sudo apt-get install graphviz 表达式 ...
- RabbitMQ安装以及java使用(一)
最近闲来无事,整理下基础知识,本次安装 1.RabbitMQ版本是3.6.10 2.操作系统是centOS 7 64位 虚拟机IP:192.168.149.133 1.安装更新系统环境依赖 yum ...
- Loadrunner常见错误处理方法
1.错误 -26601: 解压缩函数(wgzMemDecompressBuffer)失败,返回代码=-5 (Z_BUF_ERROR).inSize=0.inUse=0.outUse=0 用LR做压力测 ...
- MySQL replication illegal mix of collations
MySQL replication case 一则 转载:http://www.vmcd.org/2013/09/mysql-replication-case-%E4%B8%80%E5%88%99/ ...