您当前的位置:首页 > 今日分享头条 > 正文

quartz定时任务(spring quartz 定时任务什么时候执行)

本文目录

  • spring quartz 定时任务什么时候执行
  • 如何监控java quartz定时器中的所有定时任务
  • java中quartz定时任务的执行如何避免并发
  • java quartz 定时需要的包
  • java如何利用第三方Quartz实现定时任务
  • Quartz的定时任务我要每隔24小时执行一次Quartz怎么设置
  • spring中配置了quartz定时任务,怎么在后台用java代码获取定时任务的运行状态
  • 怎么样让quartz定时任务在某个条件下立即执行
  • quartz定时任务都能实现什么\
  • quartz定时任务最小时间是多少

spring quartz 定时任务什么时候执行

《!-- 每天的24小时,每隔5分钟,获取邮件存库一次 --》《bean id=“GetEmailJob“ class=“com.suitong.mp.modules.monitor.action.GetEmailJob“》《/bean》《!-- 调用工作对象和工作方法 --》《bean id=“GetEmailTask“ class=“org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean“》《!-- 调用的类 --》《property name=“targetObject“》《ref bean=“GetEmailJob“/》《/property》《!-- 调用类中的方法 --》《property name=“targetMethod“》《value》work《/value》《/property》《/bean》《!-- 触发时间 --》《bean id=“GetEmailTime“ class=“org.springframework.scheduling.quartz.CronTriggerFactoryBean“》《property name=“jobDetail“》《ref bean=“GetEmailTask“/》《/property》《!-- cron表达式 --》《property name=“cronExpression“》《value》0 0/5 * * * ? *《/value》《!--每天的24小时(6-20点),每隔5分钟(0/5)获取邮件存库一次 [秒] [分] [小时] [日] [月] [周] [年]--》《/property》《/bean》《!-- 总管理类 如果将lazy-init=’false’那么容器启动就会执行调度程序 --》《bean id=“startQuertz“ lazy-init=“false“ autowire=“no“ class=“org.springframework.scheduling.quartz.SchedulerFactoryBean“》《property name=“triggers“》《list》《ref bean=“GetEmailTime“/》《/list》《/property》《/bean》《!-- 要调用的工作类 End--》在applicationContext.xml这样子配置即可。

如何监控java quartz定时器中的所有定时任务

监控用org.quartz.Scheduler//TriggerState:-1表示不存在,0表示正在运行,1表示暂停中int triggerState = scheduler.getTriggerState(trigger.getTriggerName(), trigger.getTriggerGroup());//启动scheduler.scheduleJob//暂停scheduler.pauseTrigger//移除scheduler.unscheduleJob

java中quartz定时任务的执行如何避免并发

只要在detail的参数里加上一句话就行了,把这个job设置成有状态的job《property name=“concurrent“ value=“false“ /》 扩展:通过concurrent属性指定任务的类型,默认情况下封装为无状态的任务,如果希望目标封装为有状态的任务,仅需要将concurrent设置为false就可以了。Spring通过名为concurrent的属性指定任务的类型,能够更直接地描述到任务执行的方式(有状态的任务不能并发执行,无状态的任务可并发执行)

java quartz 定时需要的包

1.需要的jar包 实现定时任务 需要quartz-1.5.1.jar和commons-logging-1.1.jar。2.定义定时任务配置类 该类主要进行定时任务时间的设置和设置对应的定时任务类。import org.quartz.CronTrigger;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.impl.StdSchedulerFactory;public class Test{/** * 定时任务 */public static void cleanUpJob() { try {JobDetail jobDetail = new JobDetail();jobDetail.setName(“cleanup“);jobDetail.setJobClass(PrintJob.class);CronTrigger trigger = new CronTrigger();trigger.setName(“cleanupTrigger“);trigger.setJobName(“cleanup“);trigger.setCronExpression(“0/5 * * * * ?“); Scheduler sch = StdSchedulerFactory.getDefaultScheduler();sch.scheduleJob(jobDetail, trigger);sch.start();} catch (Exception e) {e.printStackTrace();}}/** * 修改定时任务时间 */public static void modifyJobTime(String triggerName, String time) {System.out.println(“modify~~~~~~~~~~~~~~~~“); try { Scheduler sched = StdSchedulerFactory.getDefaultScheduler(); System.out.println(“triggerName “ + triggerName); CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerName, Scheduler.DEFAULT_GROUP); if(trigger == null) { return; } String oldTime = trigger.getCronExpression(); System.out.println(“oldTime “ + oldTime); if (!oldTime.equalsIgnoreCase(time)) { System.out.println(“time “ + time); // 修改时间 trigger.setCronExpression(time); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } public static void main(String args) {cleanUpJob();modifyJobTime(“cleanupTrigger“, “0/2 * * * * ?“);}}3.定时任务类 该类主要定义定时任务执行的内容。import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;public class PrintJob implements Job{@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException {SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss.SSS“);String time = sdf.format(new Date());System.out.println(“print job“ + time);} }4.输出结果modify~~~~~~~~~~~~~~~~triggerName cleanupTriggeroldTime 0/5 * * * * ?time 0/2 * * * * ?print job2014-12-03 17:06:40.031print job2014-12-03 17:06:42.015print job2014-12-03 17:06:44.016print job2014-12-03 17:06:46.019print job2014-12-03 17:06:48.019print job2014-12-03 17:06:50.020从输出的结果中可以看到,原本的定时任务为每5秒执行一次,但是由于后面对定时任务表达式做了修改,所以后来安照修改后的每2秒执行一次。

java如何利用第三方Quartz实现定时任务

给你一个简单的案例加详细注解

  • /** job是一个接口,只有一个方法void execute(JobExecutionContext context),* 被调度的作业(类)需实现该接口中execute()方法,* JobExecutionContext类提供了调度上下文的各种信息。每次执行该Job均重新创建一个Job实例*/public class MyJob  implements Job {//MyJob类为需要定时执行的类,execute为定时执行的方法。一个定时任务对应一个Job实现类。@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException {// TODO Auto-generated method stubperform();}public void perform(){ //执行报表统计入口函数//业务逻辑System.out.println(“执行时间:“+new Date());}}

  • public class QuartzTest5 {public static void main(String args) throws Exception {//SchedulerFactory 是一个接口,用于Scheduler的创建和管理SchedulerFactory factory = new StdSchedulerFactory();//从工厂里面拿到一个scheduler实例//计划表(可能翻译的不太贴切),现在我们有了要做的内容,//与调度程序交互的主要API/** Scheduler的生命期,从SchedulerFactory创建它时开始,到Scheduler调用shutdown()方法时结束;Scheduler被创建后,可以增加、删除和列举Job和Trigger,以及执行其它与调度相关的操作(如暂停Trigger)。但是,Scheduler只有在调用start()方法后,才会真正地触发trigger(即执行job)*/Scheduler scheduler = factory.getScheduler();//具体任务.//用于定义作业的实例//JobBuilder - 用于定义/构建JobDetail实例,用于定义作业的实例。JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity(“job1“, “group1“).build();//Trigger(即触发器) - 定义执行给定作业的计划的组件//TriggerBuilder - 用于定义/构建触发器实例CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(“trigger1“, “group1“).withSchedule(CronScheduleBuilder.cronSchedule(“0/1  * * * * ?“)).build();scheduler.scheduleJob(job, trigger);scheduler.start();}}

  • Quartz的定时任务我要每隔24小时执行一次Quartz怎么设置

    1、首先新建一个控制台程序,利用Nuget引入Quartz的程序包,同时会自动引入日志库,用于输入日志,如下图所示。

    2、配置项目目录下的App.Config文件,如下图所示,注意configSections一定要放在第一个节点。

    3、编写需要执行的任务逻辑,它继承了IJob接口,然后需要实现其中的Exxcute方法,任务逻辑的部分放在Execute里即可。

    4、接下来开始编写定时任务程序,首先是初始化任务调度器,如下图所示。

    5、然后利用JobBuilder建立任务关联到我们刚才创建的任务逻辑,在创建一个触发器,用来明确此任务在什么时间点执行,执行几次,最后执行start,即可进行任务。

    6、最后像下面一样依次往调度器里叠加任务即可,最后统一的执行,如果他们的执行时间需要错开的话,修改执行时间即可。

    spring中配置了quartz定时任务,怎么在后台用java代码获取定时任务的运行状态

    public class SpringWiredBean implements ApplicationContextAware { private ApplicationContext context; public void setApplicationContext( org.springframework.context.ApplicationContext context) throws BeansException { this.context = context; } public void quartz() { Map《String, Trigger》 beans = context .getBeansOfType(org.quartz.Trigger.class); Set《String》 set = beans.keySet(); for (String key : set) { Trigger cronTrigger = beans.get(key); if (cronTrigger instanceof CronTrigger) { CronTrigger _cronTrigger = (CronTrigger) cronTrigger; } else if (cronTrigger instanceof SimpleTrigger) { SimpleTrigger _cronTrigger = (SimpleTrigger) cronTrigger; } else if (cronTrigger instanceof NthIncludedDayTrigger) { NthIncludedDayTrigger _cronTrigger = (NthIncludedDayTrigger) cronTrigger; } } }}

    怎么样让quartz定时任务在某个条件下立即执行

      要使用Quartz,必须要引入以下这几个包:  1、log4j-1.2.16  2、quartz-2.1.7  3、slf4j-api-1.6.1.jar  4、slf4j-log4j12-1.6.1.jar  这些包都在下载的Quartz包里面包含着,因此没有必要为寻找这几个包而头疼。  第二步:创建要被定执行的任务类  这一步也很简单,只需要创建一个实现了org.quartz.Job接口的类,并实现这个接口的唯一一个方法execute(JobExecutionContext arg0) throws JobExecutionException即可。

    quartz定时任务都能实现什么\

    众所周知spring 的Quartz定时器的功能非常强大,可以在特定的年月日小时分秒的时间点触发时间,完成事件的调度,就像windows中得计划任务一样。下面看一个典型的Quartz定时器的实现: 1、首先实现一个用于被执行的类,这个类用于被定时器调度,这个类不需要继承任何类或者接口,代码如下: publicTestQuartz{ public void doSomething(){ //TODO } } 2、spring配置文件,具体配置 《!-- 被执行类 --》 《beanid=“testQuarzt“class=“test.testQuarzt“/》 《!-- 将testQuarzt注入到job中 --》 《beanid=“testQuartzJob“class=“org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean“》 《property name=“targetObject“ ref=“testQuarzt“ /》 《property name=“targetMethod“ value=“doSomething“ /》 《property name=“concurrent“ value=“false“ /》 《/bean》 《!-- 将job注入到定时触发器 --》 《beanid=“testTrigger“class=“org.springframework.scheduling.quartz.CronTriggerBean“》 《property name=“jobDetail“ ref=“testQuartzJob“ /》 《property name=“cronExpression“》 《value》0 0 6 * * ?《value》 《property》 《bean》

    quartz定时任务最小时间是多少

    Quartz是Job scheduling(作业调度)领域的一个开源项目,Quartz既可以单独使用也可以跟spring框架整合使用,在实际开发中一般会使用后者。使用Quartz可以开发一个或者多个定时任务,每个定时任务可以单独指定执行的时间,例如每隔1小时执行一次、每个月第一天上午10点执行一次、每个月最后一天下午5点执行一次等。主要配置的内容有配置自定义Job、任务描述、触发器、调度工厂等自动扫包注册任务对象注册JobDetail触发器调度工厂


    声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

    上一篇: qq短信群发(手机qq怎么群发消息给好友)

    下一篇: 昙花和令箭荷花的区别(图文对比),昙花和令箭荷花有何异同(老花农一看就知道买错了)



    推荐阅读