定时任务schedule(quartz)

1, 简介
Quartz是一个任务调度框架。
核心类:
Scheduler  :调度器,所有Job的调度都是由它控制;
JobDetail   :生成Job对象的实例,存储Job对象需要的参数;
Job           :执行业务逻辑;
Trigger      :定义触发的条件;
帮助类
SimpleScheduleBuilder:用于构建Scheduler:
JobBuilder           :用于构建JobDetail:
TriggerBuilder       :用于构建Trigger;

2, 创建任务
public class Test
{
    public static void schedue() throws SchedulerException
    {
        // 调度器
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

// 任务
        JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").usingJobData("key", "value")
                .build();

// 触发器
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startNow()
                .withSchedule(simpleSchedule().withIntervalInSeconds(40).repeatForever()).build();

// 调度器关联任务JobDetail与触发器Trigger
        scheduler.scheduleJob(job, trigger);

// 定时任务启动
        scheduler.start();
    }

public class MyJob implements org.quartz.Job
    {

/*
         * 具体的业务逻辑
         */
        @Override
        public void execute(JobExecutionContext context) throws JobExecutionException
        {
            JobDetail jobDetail = context.getJobDetail();
            // 获取参数
            JobDataMap jobDataMap = jobDetail.getJobDataMap();
            jobDataMap.get("key");

}

}

public static void main(String[] args) throws SchedulerException
    {
        schedue();
    }

}

备注:
Jobkey     :JobDetail#getKey(),格式:group.name
TriggerKey : Trigger#getKey(),  格式:group.name

3, Cron表达式

例如:0 0 12 * * ?

4,其它
Maven依赖:
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz-jobs</artifactId>
        <version>2.2.1</version>
    </dependency>

官网地址: http://www.quartz-scheduler.org/

时间: 2024-11-03 20:57:11

定时任务schedule(quartz)的相关文章

java实现定时任务 Schedule

1.java定时任务可以借助 java.util.Timer 来实现 [java] view plain copy import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class Test { public static void main(String[] args) { //timer1(); timer2(); //timer

spring定时任务包Quartz版本不兼容

使用spring定时任务包Quartz时,必须使用Quartz1.85以下版本的.     查看发现spring3.0.5中org.springframework.scheduling.quartz.CronTriggerBean继承了     org.quartz.CronTrigger(public class CronTriggerBeanextends CronTrigger),     而在quartz2.1.3中org.quartz.CronTrigger是个接口(publicabs

Windows的定时任务(Schedule Task)设置

一.设置1 点击"开始"2 点击"控制面板"3 双击"任务计划"4 双击"添加任务计划"5 到了"任务计划向导"界面,点击"下一步"6 点击"浏览"选择需要定时运行的程序(exe文件,bat文件,com文件,sys文件)然后确定.7 给此任务取个名称,也可以默认,并且选择多少时间段运行一次程序,点击"下一步"8 选择什么时刻运行,开始运行日期.点击

定时任务 Wpf.Quartz.Demo.4

本文继续介绍定时任务 Wpf.Quartz.Demo.3的一些小细节, 代码也请前往第3节下载. 1.RichTextBox右键菜单 <RichTextBox.ContextMenu>                <ContextMenu>                    <MenuItem Header="剪贴" Command="ApplicationCommands.Cut"/>                   

spring定时任务之-quartz调度器

公司项目里面有个定时任务,一直想弄清楚其流程,以为很难,今天有空研究了一下,发现其实实现很简单. 查资料发现spring的定时任务有很多种,quartz调度器也有两种一种是作业类需继承自特定的基类:org.springframework.scheduling.quartz.QuartzJobBean. 另一种则是作业类不需继承特定基类.我觉得第二种更加简单简洁,公司项目里面也是用到的这种方法.接下来就讲一下具体编写步骤: 第一步:编写任务类 Java代码   package com.grx.pa

定时任务框架-quartz

依赖 <!-- 定时任务jar --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.1.7</version> </dependency> 任务调度类 1 /** 2 * 3 * @作者 陈祥 4 * @创建时间 2018年5月29日 5 * @功能描述

PHP Laravel定时任务Schedule

前提:本文方法是利用Linux的crontab定时任务来协助实现Laravel调度(Mac也一样). 一.首先添加Crontab定时任务,这里只做简单介绍. 用命令crontab -e 添加如下内容 * * * * * /usr/local/bin/php /usr/local/var/www/projectName/artisan schedule:run >> /dev/null 2>&1 1 2 如图: 上面命令Crontab会每分钟去调Laravel的schedule命令

Java 定时任务之Quartz

使用CronTrigger CronTrigger 能够提供比 SimpleTrigger 更有具体实际意义的调度方案,调度规则基于 Cron 表达式,CronTrigger 支持日历相关的重复时间间隔(比如每月第一个周一执行),而不是简单的周期时间间隔.因此,相对于SimpleTrigger而言,CronTrigger在使用上也要复杂一些. Cron表达式 Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成,如表1所示: 表1 Cr

innosetup卸载软件后,删除定时任务schedule task

代码如下: //innosetup自带的方法,当卸载软件时,根据卸载的状态改变时而触发 procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var ResultCode: Integer;//函数参数,结果码 RemoveParams: String;//移除定时任务的参数 begin //usPostUninstall是innosetup定义的状态,usPostUninstall代表卸载完成后 if(CurU