返回顶部
首页 > 资讯 > 后端开发 > Python >quartz2.2 官方例子3
  • 224
分享到

quartz2.2 官方例子3

例子官方 2023-01-31 05:01:25 224人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

quartz 官方例子3所需jar:quartz-2.2.0.jarquartz-jobs-2.2.0.jarslf4j-api-1.7.5.jarslf4j-log4j12-1.7.5.jarlog4j-1.2.16.jarquartz.

quartz 官方例子3


所需jar

quartz-2.2.0.jar

quartz-jobs-2.2.0.jar

slf4j-api-1.7.5.jar

slf4j-log4j12-1.7.5.jar

log4j-1.2.16.jar




quartz.properties 配置:

org.quartz.scheduler.instanceName: DefaultQuartzScheduler

org.quartz.scheduler.rmi.export: false

org.quartz.scheduler.rmi.proxy: false

org.quartz.scheduler.wrapJobExecutionInUserTransaction: false


org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount: 10

org.quartz.threadPool.threadPriority: 5

org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true


org.quartz.jobStore.misfireThreshold: 60000


org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore

#使用RAMJobStore模式把所有数据保存在内存里,执行速度快;

#使用数据库模式:org.quartz.impl.jdbcjobstore.JobStoreTX将所有调度、作业、触发器信息都保存在数据库中。



官方例子:

CronTriggerExample.java :


package org.quartz.examples.example3;


import java.util.Date;

import org.quartz.CronScheduleBuilder;

import org.quartz.CronTrigger;

import org.quartz.JobBuilder;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerFactory;

import org.quartz.SchedulerMetaData;

import org.quartz.TriggerBuilder;

import org.quartz.impl.StdSchedulerFactory;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


public class CronTriggerExample

{

 public void run()

   throws Exception

 {

   Logger log = LoggerFactory.getLogger(CronTriggerExample.class);


   log.info("------- Initializing -------------------");


   SchedulerFactory sf = new StdSchedulerFactory();

   Scheduler sched = sf.getScheduler(); // 初始化调度器


   log.info("------- Initialization Complete --------");


   log.info("------- Scheduling Jobs ----------------");


   JobDetail job = JobBuilder.newJob(SimpleJob.class).withIdentity("job1", "group1").build(); // 设置作业,具体操作在SimpleJob类里


   CronTrigger trigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0/20 * * * * ?")).build(); // 设置触发器 每20秒执行一次


   Date ft = sched.scheduleJob(job, trigger); // 设置调度作业

   log.info(job.geTKEy() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());


   job = JobBuilder.newJob(SimpleJob.class).withIdentity("job2", "group1").build();


   trigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("trigger2", "group1").withSchedule(CronScheduleBuilder.cronSchedule("15 0/2 * * * ?")).build();


   ft = sched.scheduleJob(job, trigger);

   log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());


   job = JobBuilder.newJob(SimpleJob.class).withIdentity("job3", "group1").build();


   trigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("trigger3", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0 0/2 8-17 * * ?")).build();


   ft = sched.scheduleJob(job, trigger);

   log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());


   job = JobBuilder.newJob(SimpleJob.class).withIdentity("job4", "group1").build();


   trigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("trigger4", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0 0/3 17-23 * * ?")).build();


   ft = sched.scheduleJob(job, trigger);

   log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());


   job = JobBuilder.newJob(SimpleJob.class).withIdentity("job5", "group1").build();


   trigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("trigger5", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0 0 10am 1,15 * ?")).build();


   ft = sched.scheduleJob(job, trigger);

   log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());


   job = JobBuilder.newJob(SimpleJob.class).withIdentity("job6", "group1").build();


   trigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("trigger6", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0,30 * * ? * MON-FRI")).build();


   ft = sched.scheduleJob(job, trigger);

   log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());


   job = JobBuilder.newJob(SimpleJob.class).withIdentity("job7", "group1").build();


   trigger = (CronTrigger)TriggerBuilder.newTrigger().withIdentity("trigger7", "group1").withSchedule(CronScheduleBuilder.cronSchedule("0,30 * * ? * SAT,SUN")).build();


   ft = sched.scheduleJob(job, trigger);

   log.info(job.getKey() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());


   log.info("------- Starting Scheduler ----------------");


   sched.start(); // 开启调度任务,执行作业


   log.info("------- Started Scheduler -----------------");


   log.info("------- Waiting five minutes... ------------");

   try

   {

     Thread.sleep(300000L); // 线程休眠5分钟,任务还继续执行

   }

   catch (Exception e)

   {

   }


   log.info("------- Shutting Down ---------------------");


   sched.shutdown(true); // 终止任务


   log.info("------- Shutdown Complete -----------------");


   SchedulerMetaData metaData = sched.getMetaData();

   log.info("Executed " + metaData.getNumberOfJobsExecuted() + " jobs.");

 }


 public static void main(String[] args)

   throws Exception

 {

   CronTriggerExample example = new CronTriggerExample();

   example.run();

 }

}


SimpleJob.java :


package org.quartz.examples.example3;


import java.util.Date;

import org.quartz.Job;

import org.quartz.JobDetail;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.quartz.JobKey;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;


public class SimpleJob

 implements Job

{

 private static Logger _log = LoggerFactory.getLogger(SimpleJob.class);


 public void execute(JobExecutionContext context)

   throws JobExecutionException // 具体的作业

 {

   JobKey jobKey = context.getJobDetail().getKey();

   _log.info("SimpleJob says: " + jobKey + " executing at " + new Date());

   System.out.println("执行任务");

 }

}


执行结果:

2013-08-14 14:13:10,635  com.test.quartz.CronTriggerExample  70 - ------- Initializing -------------------

2013-08-14 14:13:10,679  org.quartz.impl.StdSchedulerFactory  1184 - Using default implementation for ThreadExecutor

2013-08-14 14:13:10,683  org.quartz.simpl.SimpleThreadPool  268 - Job execution threads will use class loader of thread: main

2013-08-14 14:13:10,709  org.quartz.core.SchedulerSignalerImpl  61 - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl

2013-08-14 14:13:10,717  org.quartz.core.QuartzScheduler  249 - Quartz Scheduler v.2.2.0 created.

2013-08-14 14:13:10,718  org.quartz.simpl.RAMJobStore  155 - RAMJobStore initialized.

2013-08-14 14:13:10,720  org.quartz.core.QuartzScheduler  318 - Scheduler meta-data: Quartz Scheduler (v2.2.0) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'

 Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.

 NOT STARTED.

 Currently in standby mode.

 Number of jobs executed: 0

 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.

 Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.


2013-08-14 14:13:10,721  org.quartz.impl.StdSchedulerFactory  1339 - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'

2013-08-14 14:13:10,722  org.quartz.impl.StdSchedulerFactory  1343 - Quartz scheduler version: 2.2.0

2013-08-14 14:13:10,722  com.test.quartz.CronTriggerExample  75 - ------- Initialization Complete --------

2013-08-14 14:13:10,722  com.test.quartz.CronTriggerExample  77 - ------- Scheduling Jobs ----------------

2013-08-14 14:13:10,742  com.test.quartz.CronTriggerExample  89 - group1.job1 has been scheduled to run at: Wed Aug 14 14:13:10 CST 2013 and repeat based on expression: 0/5 * * * * ?

2013-08-14 14:13:10,742  com.test.quartz.CronTriggerExample  174 - ------- Starting Scheduler ----------------

2013-08-14 14:13:10,743  org.quartz.core.QuartzScheduler  588 - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.

2013-08-14 14:13:10,743  com.test.quartz.CronTriggerExample  178 - ------- Started Scheduler -----------------

2013-08-14 14:13:10,743  com.test.quartz.CronTriggerExample  180 - ------- Waiting one minute... ------------

2013-08-14 14:13:10,745  org.quartz.core.QuartzSchedulerThread  268 - batch acquisition of 1 triggers

2013-08-14 14:13:10,751  org.quartz.simpl.PropertySettingJobFactory  51 - Producing instance of Job 'group1.job1', class=com.test.quartz.SimpleJob

2013-08-14 14:13:10,754  org.quartz.core.QuartzSchedulerThread  268 - batch acquisition of 1 triggers

2013-08-14 14:13:10,754  org.quartz.core.JobRunshell  206 - Calling execute on job group1.job1

2013-08-14 14:13:10,754  com.test.quartz.SimpleJob  18 - SimpleJob says: group1.job1 executing at Wed Aug 14 14:13:10 CST 2013

执行任务

2013-08-14 14:13:11,717  org.quartz.utils.UpdateChecker  54 - Checking for available updated version of Quartz...

2013-08-14 14:13:11,775  org.quartz.utils.UpdateChecker  49 - Quartz version update check failed: www.terracotta.org

2013-08-14 14:13:15,000  org.quartz.simpl.PropertySettingJobFactory  51 - Producing instance of Job 'group1.job1', class=com.test.quartz.SimpleJob

2013-08-14 14:13:15,001  org.quartz.core.JobRunShell  206 - Calling execute on job group1.job1

2013-08-14 14:13:15,001  com.test.quartz.SimpleJob  18 - SimpleJob says: group1.job1 executing at Wed Aug 14 14:13:15 CST 2013

执行任务

2013-08-14 14:13:15,002  org.quartz.core.QuartzSchedulerThread  268 - batch acquisition of 1 triggers

2013-08-14 14:13:20,001  org.quartz.simpl.PropertySettingJobFactory  51 - Producing instance of Job 'group1.job1', class=com.test.quartz.SimpleJob

2013-08-14 14:13:20,008  org.quartz.core.QuartzSchedulerThread  268 - batch acquisition of 1 triggers

2013-08-14 14:13:20,009  org.quartz.core.JobRunShell  206 - Calling execute on job group1.job1

2013-08-14 14:13:20,009  com.test.quartz.SimpleJob  18 - SimpleJob says: group1.job1 executing at Wed Aug 14 14:13:20 CST 2013

执行任务

2013-08-14 14:13:25,000  org.quartz.simpl.PropertySettingJobFactory  51 - Producing instance of Job 'group1.job1', class=com.test.quartz.SimpleJob

2013-08-14 14:13:25,001  org.quartz.core.QuartzSchedulerThread  268 - batch acquisition of 1 triggers

2013-08-14 14:13:25,001  org.quartz.core.JobRunShell  206 - Calling execute on job group1.job1

2013-08-14 14:13:25,001  com.test.quartz.SimpleJob  18 - SimpleJob says: group1.job1 executing at Wed Aug 14 14:13:25 CST 2013

执行任务


--结束END--

本文标题: quartz2.2 官方例子3

本文链接: https://lsjlt.com/news/189209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • quartz2.2 官方例子3
    quartz 官方例子3所需jar:quartz-2.2.0.jarquartz-jobs-2.2.0.jarslf4j-api-1.7.5.jarslf4j-log4j12-1.7.5.jarlog4j-1.2.16.jarquartz....
    99+
    2023-01-31
    例子 官方
  • Tiknter例子3
    1.两个子类,重定向输出运行效果:============================================代码部分:============================================#!/usr/bin...
    99+
    2023-01-31
    例子 Tiknter
  • 3-4 文件读写例子(3)
    u实验步骤(4): 向FileOption.cs文件中添加代码如下: //==============================第二部分:类设计============================&...
    99+
    2023-01-31
    例子 文件
  • Python练手例子(3)
    13、打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个...
    99+
    2023-01-30
    例子 Python
  • 3-4 文件读写例子
    3-3  文件读写例子 u本节学习目标: n学习通过文件流FileStream打开文本文件、写入文本文件、设置文件属性、实施对文件的目录操作管理的基本方法 n学习文件对话框的基本操作方法 n学习通过文...
    99+
    2023-01-31
    例子 文件
  • opencv-python 基本例子3个
    其中的内容均参考自官网的说明: http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorials.html 显示图片-Gui Features in OpenCV- Getti...
    99+
    2023-01-31
    例子 opencv python
  • 3-4 文件读写例子(4)
           /// <summary>                 public void ReadTextFile(string filepath, out Int16 i, out string ...
    99+
    2023-01-31
    例子 文件
  • 3-4 文件读写例子(2)
    //=========================第一部分:主界面功能设计============================= using System;...
    99+
    2023-01-31
    例子 文件
  • 实战Django:官方实例Part3
    前面两个部分我们介绍了投票应用的框架和后台管理部分。接下来舍得要介绍这个应用面向用户的界面。 这里我们要引入一个新的概念,“视图”。在Django中,视图是一根连接模型和模板的纽带,它决定哪些数据要呈现给用户。 来看一下Django的这几个...
    99+
    2023-01-31
    实战 实例 官方
  • Vue中子组件调用父组件的3种方法实例
    目录1.直接在子组件中通过“this.$parent.event”来调用父组件的方法。2.子组件用“$emit”向父组件触发一个事件,...
    99+
    2024-04-02
  • Power BI官方客户案例2021
    微软商业应用峰会Power BI客户案例,今年的客户案例相比前2年不同,主要是大客户,基本都是行业Top公司。 选取零售,医药制造,教育,医疗IT等行业龙头。沃尔玛,拜耳,滑铁卢大学的分享内容非常棒,值得仔细学习。 https://pow...
    99+
    2018-11-18
    Power BI官方客户案例2021
  • 官方win10安装实例分析
    本篇内容介绍了“官方win10安装实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!再本站下载好系统以后,把下载好的系统解压;双击运行【...
    99+
    2023-07-01
  • Android DataBinding的官方双向绑定示例
    在Android Studio 2.1 Preview 3之后,官方开始支持双向绑定了。可惜目前Google并没有在Data Binding指南里面加入这个教程,并且在整个互联网之中只有这篇文章介绍了如何使用反向绑定。在阅读一下文章之前,我...
    99+
    2023-05-30
    android databinding dat
  • ZooKeeper官方文档之Java案例解读
    目录需求理解举例类比Executor和DataMonitor内部类和接口Executor:DataMonitor:继承关系Executor:DataMonitor:引用关系Execu...
    99+
    2024-04-02
  • Xterm.js入门官方文档示例详解
    目录前言xterm.js是什么安装初始化使用插件API文档模块类 Terminal构造函数 constructor接口插件attach插件前后端示例结语前言 入职的新公司所在的事业部...
    99+
    2022-11-13
    Xterm.js 官方文档 Xterm.js 入门
  • Golang 官方依赖注入工具wire示例详解
    目录依赖注入是什么开源选型wireprovidersinjectors类型区分总结依赖注入是什么 Dependency Injection is the idea that your...
    99+
    2024-04-02
  • redhat6.7修改为centos6.7官方yum源的示例分析
    redhat6.7修改为centos6.7官方yum源的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。YUM攻略1 概述yum命令是在Fedora和RedHa...
    99+
    2023-06-06
  • Yii框架官方教程增补篇3——开始:创建第一个Yii应用
    为了对 Yii 有个初步认识,我们在本节讲述如何建立第一个 Yii 应用。我们将使用yiic(命令行工具)创建一个新的 Yii 应用。Gii(强大的基于web的代码生成器)为特定的任务完成自动代码生成。假定Yii...
    99+
    2022-06-01
    crud gii MySQL Yii yiic 命令行 数据库 模型 目录结构 配置文件
  • Golang官方限流器库实现限流示例详解
    目录前言例子实现小结前言 在翻Golang官方库的过程中,发现一个有趣的库golang.org/x/time ,里面只有一个类rate,研究了一下发现它是一个限流器,实现了很多的功能...
    99+
    2024-04-02
  • 潜艇来袭(Qt官方案例-2维动画游戏)
    一、游戏介绍 1 开始界面 启动程序,进入开始界面。 2 开始新游戏 点击菜单:File》New Game (或者Ctrl+N)进入新游戏。 开始新游戏之后,会有一个海底的潜艇,和水面舰艇对战。 计算机:自动控制潜艇。海底潜艇会隔段...
    99+
    2023-09-05
    游戏 qt 开发语言 数据结构 c++
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作