Quartz-job的quartz.properties quartz_jobs.xml 配置文件说明

【转】http://blog.csdn.net/sanfye/article/details/49204837
http://blog.csdn.net/sanfye/article/details/49204307

Quartz-Job的quartz.properties配置文件说明,此文件在quartz的jar包有,可直接拿过来使用不过只有基本的几个配置 自己可根据需要进行扩充;另外如果项目中没有对该配置文件重写,则Quartz会加载自己jar包中的quartz.properties文件。
# Default Properties file for use by StdSchedulerFactory  
# to create a Quartz Scheduler Instance, if a different  
# properties file is not explicitly specified.  
#  
# ===========================================================================  
# Configure Main Scheduler Properties 调度器属性  
# ===========================================================================  
org.quartz.scheduler.instanceName: DefaultQuartzScheduler  
#org.quartz.scheduler.instanceid:AUTO  
org.quartz.scheduler.rmi.export: false  
org.quartz.scheduler.rmi.proxy: false  
org.quartz.scheduler.wrapJobExecutionInUserTransaction: false  
# ===========================================================================    
# Configure ThreadPool 线程池属性    
# ===========================================================================  
#线程池的实现类(一般使用SimpleThreadPool即可满足几乎所有用户的需求)  
org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool  
#指定线程数,至少为1(无默认值)(一般设置为1-100直接的整数合适)  
org.quartz.threadPool.threadCount: 10  
#设置线程的优先级(最大为java.lang.Thread.MAX_PRIORITY 10,最小为Thread.MIN_PRIORITY 1,默认为5)  
org.quartz.threadPool.threadPriority: 5  
#设置SimpleThreadPool的一些属性  
#设置是否为守护线程  
#org.quartz.threadpool.makethreadsdaemons = false  
#org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true  
#org.quartz.threadpool.threadsinheritgroupofinitializingthread=false  
#线程前缀默认值是:[Scheduler Name]_Worker  
#org.quartz.threadpool.threadnameprefix=swhJobThead;  
# 配置全局监听(TriggerListener,JobListener) 则应用程序可以接收和执行 预定的事件通知  
# ===========================================================================  
# Configuring a Global TriggerListener 配置全局的Trigger监听器  
# MyTriggerListenerClass 类必须有一个无参数的构造函数,和 属性的set方法,目前2.2.x只支持原始数据类型的值(包括字符串)  
# ===========================================================================  
#org.quartz.triggerListener.NAME.class = com.swh.MyTriggerListenerClass  
#org.quartz.triggerListener.NAME.propName = propValue  
#org.quartz.triggerListener.NAME.prop2Name = prop2Value  
# ===========================================================================  
# Configuring a Global JobListener 配置全局的Job监听器  
# MyJobListenerClass 类必须有一个无参数的构造函数,和 属性的set方法,目前2.2.x只支持原始数据类型的值(包括字符串)  
# ===========================================================================  
#org.quartz.jobListener.NAME.class = com.swh.MyJobListenerClass  
#org.quartz.jobListener.NAME.propName = propValue  
#org.quartz.jobListener.NAME.prop2Name = prop2Value  
# ===========================================================================    
# Configure JobStore 存储调度信息(工作,触发器和日历等)  
# ===========================================================================  
# 信息保存时间 默认值60秒  
org.quartz.jobStore.misfireThreshold: 60000  
#保存job和Trigger的状态信息到内存中的类  
org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore  
# ===========================================================================    
# Configure SchedulerPlugins 插件属性 配置  
# ===========================================================================  
# 自定义插件    
#org.quartz.plugin.NAME.class = com.swh.MyPluginClass  
#org.quartz.plugin.NAME.propName = propValue  
#org.quartz.plugin.NAME.prop2Name = prop2Value  
#配置trigger执行历史日志(可以看到类的文档和参数列表)  
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin    
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}    
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}    
#配置job调度插件  quartz_jobs(jobs and triggers内容)的XML文档    
#加载 Job 和 Trigger 信息的类   (1.8之前用:org.quartz.plugins.xml.JobInitializationPlugin)  
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin  
#指定存放调度器(Job 和 Trigger)信息的xml文件,默认是classpath下quartz_jobs.xml  
org.quartz.plugin.jobInitializer.fileNames = my_quartz_job2.xml    
#org.quartz.plugin.jobInitializer.overWriteExistingJobs = false    
org.quartz.plugin.jobInitializer.failOnFileNotFound = true    
#自动扫描任务单并发现改动的时间间隔,单位为秒  
org.quartz.plugin.jobInitializer.scanInterval = 10  
#覆盖任务调度器中同名的jobDetail,避免只修改了CronExpression所造成的不能重新生效情况  
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false  
# ===========================================================================    
# Sample configuration of ShutdownHookPlugin  ShutdownHookPlugin插件的配置样例  
# ===========================================================================  
#org.quartz.plugin.shutdownhook.class = \org.quartz.plugins.management.ShutdownHookPlugin  
#org.quartz.plugin.shutdownhook.cleanShutdown = true  
#  
# Configure RMI Settings 远程服务调用配置  
#  
#如果你想quartz-scheduler出口本身通过RMI作为服务器,然后设置“出口”标志true(默认值为false)。  
#org.quartz.scheduler.rmi.export = false  
#主机上rmi注册表(默认值localhost)  
#org.quartz.scheduler.rmi.registryhost = localhost  
#注册监听端口号(默认值1099)  
#org.quartz.scheduler.rmi.registryport = 1099  
#创建rmi注册,false/never:如果你已经有一个在运行或不想进行创建注册  
# true/as_needed:第一次尝试使用现有的注册,然后再回来进行创建  
# always:先进行创建一个注册,然后再使用回来使用注册  
#org.quartz.scheduler.rmi.createregistry = never  
#Quartz Scheduler服务端端口,默认是随机分配RMI注册表  
#org.quartz.scheduler.rmi.serverport = 1098  
#true:链接远程服务调度(客户端),这个也要指定registryhost和registryport,默认为false  
# 如果export和proxy同时指定为true,则export的设置将被忽略  
#org.quartz.scheduler.rmi.proxy = false  

-------------------------------------------------------------------------quartz_jobs.xml配置

<?xml version='1.0' encoding='utf-8'?>  
 <job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"  
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
   xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_2_0.xsd"  
   version="2.0">  
    <schedule>  
         <job>  
             <name>my-very-clever-job</name>  
             <group>MYJOB_GROUP</group>  
             <description>使用 声明式 执行Job任务</description>  
             <job-class>com.swh.jobweb.process.MyJob6</job-class>  
         </job>  
         <trigger>  
             <cron>  
                 <name>my-trigger</name>  
                 <group>MYTRIGGER_GROUP</group>  
                 <job-name>my-very-clever-job</job-name>  
                 <job-group>MYJOB_GROUP</job-group>  
                 <!-- trigger every night at 4:30 am -->  
                 <!-- do not forget to light the kitchen's light -->  
                 <cron-expression>3/5 * * * * ?</cron-expression>  
             </cron>  
         </trigger>  
     </schedule>  
 </job-scheduling-data>  

使用这种声明式编程后,Job任务执行方法和之前一样,但启动代码会减少很多,只需启动和关闭即可

job任务执行方法和之前一样(测试小用例)

public class MyJob6 implements Job  {  
  
    Logger logger = LoggerFactory.getLogger(MyJob6.class);  
    public void execute(JobExecutionContext context)  
            throws JobExecutionException {// JobExecutionContext 是任务执行的上下文,可以拿到任务的Key  
        JobDetail jobDetail = context.getJobDetail();  
        JobKey jobKey = jobDetail.getKey();  
        String jobName = jobKey.getName();  
        String jobGroup = jobKey.getGroup();  
        logger.info("任务Key:" + jobName + ",隶属于"+jobGroup+" 正在执行,执行时间: "  
                + Calendar.getInstance().getTime().toLocaleString());  
          
    }  
}  
但启动该任务的方法会有大大的缩减,只需要调用start和shutdown即可完成任务执行(之前还需要设置Job和Trigger)
public class MyJob6Main {  
    static Logger logger = LoggerFactory.getLogger(MyJob6Main.class);  
    public static void main(String[] args) {  
        try {  
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();  
            scheduler.start();  
            logger.info("任务开始执行:"+(new Date()).toLocaleString());  
              
            Thread.sleep(5L * 1000L);  
            scheduler.shutdown(true);  
        } catch (Exception e) {  
            e.printStackTrace();  
            logger.error(e.getMessage());  
        }  
    }  
} 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值