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 ...
随机推荐
- HDOJ2003-求绝对值
Problem Description 求实数的绝对值. Input 输入数据有多组,每组占一行,每行包含一个实数. Output 对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果 ...
- C指针1
//定义:指针是一个特殊的数据类型,指针指向内存中的地址,因此,指针变量存储的是内存中的一个地址 //例子,%p表示打印一个地址,打印p表示打印p指向的地址 //输出结果为0x7fff5fbff7dc ...
- Fiddler基础使用一之捕获https请求
fiddler抓包工具: http协议cookieFiddler是一个调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddle ...
- C#的基础数据类型
一.概述 C# 的类型系统是统一的,因此任何类型的值都可以按对象处理.C# 中的每个类型直接或间接地从 object 类类型派生,而 object 是所有类型的最终基类.C#的数据类型主要分为三类:值 ...
- Pandas: 如何将一列中的文本拆分为多行? | Python
Pandas: 如何将一列中的文本拆分为多行? 在数据处理过程中,经常会遇到以下类型的数据: 在同一列中,本该分别填入多行中的数据,被填在一行里了,然而在分析的时候,需要拆分成为多行. 在上图中,列名 ...
- Android学习笔记-Adapter基础讲解
本节引言 从本节开始我们要讲的UI控件都是跟Adapter(适配器)打交道的,了解并学会使用这个Adapter很重要, Adapter是用来帮助填充数据的中间桥梁,简单点说就是:将各种数据以合适的形式 ...
- Nginx配置抵御DDOS或CC攻击
防攻击的思路我们都明白,比如限制IP啊,过滤攻击字符串啊,识别攻击指纹啦.可是要如何去实现它呢?用守护脚本吗?用PHP在外面包一层过滤?还是直接加防火墙吗?这些都是防御手段.不过本文将要介绍的是直接通 ...
- MySQL日期、时间相关内容
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- 原生JS元素怎么取消事件
关于原生JS元素怎么取消事件,有3种方式 常规方法:removeEventListener 案例: <body> <div id="myDIV"> div ...
- Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...