在任务高度中,当任务执行完后,可能要做一些事情,比如日志等.
上一节是执行固定次数的程序,监听的是Trigger,使用TriggerListner
这一节是执行完这个任务后执行日志,监听的是Job, 使用JobListener.
废话不多,代码如下:
package test.quartz.spring;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.listeners.JobListenerSupport;
public class JobListener extends JobListenerSupport {
private String name;
public void setName(String name){
this.name= name;
}
public String getName() {
// TODO Auto-generated method stub
return this.name;
}
public void jobWasExecuted(JobExecutionContext context,
JobExecutionException jobException) {
System.out.println("jobWasExecuted");
System.out.println("我要执行另一个任务了!~");
}
}
配置如下jobListener:
<bean id="jobListener" class="test.quartz.spring.JobListener">
<property name="name">
<value>jobListener</value>
</property>
</bean>
配置listnener到JobDetail:
<bean id="jobtask" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>test.quartz.spring.TJob</value>
</property>
<property name="jobListenerNames">
<list>
<value>jobListener</value>
</list>
</property>
</bean>
配置listener到Scheduler:
<bean autowire = "no" class = "org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local ="cron"/>
</list>
</property>
<!-- 添加监听器 -->
<property name="triggerListeners">
<list>
<ref bean="triggerListener"/>
</list>
</property>
<property name="jobListeners">
<list>
<ref bean="jobListener"/>
</list>
</property>
</bean>
这里使用的是监听器来监控线程的执行情况,并在合适的时间做相应的处理。
比如任务调度的日志是必须的,这样可以查看调度任务的执行情况
分享到:
相关推荐
在"Quartz.net作业调度自定义定时执行任务多任务执行c#"这个主题中,我们将深入探讨如何使用Quartz.NET来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...
Quartz是一款开源的作业调度框架,它允许开发者创建和安排任务执行。在Java应用程序中,Quartz能够帮助我们在特定的时间点或按照预设的周期执行某些功能,如数据收集、日志清理等。当我们需要终止某个正在运行的任务...
在实际项目中,有时我们需要判断一个Quartz任务是否正在运行,以便进行相应的操作,如避免重复执行或者进行状态监控。本文将详细介绍如何在Quartz中实现这一功能。 首先,理解Quartz的工作原理是关键。Quartz通过...
在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...
6. **监控与管理**:为了实现动态配置,我们需要对任务执行状态进行实时监控。Quartz提供了API接口和JMX支持,可以获取Job和Trigger的状态,以及进行暂停、恢复、删除等操作。 7. **持久化存储**:Quartz支持多种...
在这个例子中,`cronExpression`定义了任务的执行频率,`targetObject`和`targetMethod`指定了任务执行的具体对象和方法。 当遇到Spring定时器执行两次的问题时,可能的原因有以下几点: 1. **多实例问题**:如果...
3. **配置触发器**:使用`CronScheduleBuilder`可以方便地设置任务执行的时间规则。例如,每日定时执行一次: ```csharp IScheduler sched = new StdSchedulerFactory().GetScheduler(); JobDetailImpl jb1 = new ...
System.out.println("任务执行了"); } } ``` 然后,我们需要定义 Trigger,它是调度任务何时执行的规则。Quartz 提供了多种 Trigger 类型,如 SimpleTrigger(一次性执行)和 CronTrigger(基于 cron 表达式执行...
我们要实现定时执行某个方法时,就可以在job目录中加入自己的方法类,但要实现GCJobInterface接口,重写execute 方法即可
总的来说,Quartz任务调度器与Spring的整合使得我们能够在应用中轻松地实现定时任务的管理,而无需关心任务执行的具体细节。它为开发者提供了一套强大的工具,帮助我们在项目中实现定时任务的自动化,提高系统的运行...
Java定时执行多任务是软件开发中的常见需求,用于在特定时间点或按固定频率执行某项操作,例如数据同步、日志清理等。Java提供了一些内置的定时工具,如`java.util.Timer`和`java.util.concurrent....
使用Spring Quartz执行定时任务
在“quartz 调用两次任务”这个问题中,我们可能遇到了一个常见问题,即同一个 Quartz 任务被错误地触发执行了两次。 在 Quartz 中,任务(Job)是通过实现 `org.quartz.Job` 接口的类来创建的,而调度则是通过 `...
标题中的“spring2.0 Quartz 执行每天定时任务 普通普是执行任务”涉及到的是在Spring 2.0框架中使用Quartz库来创建并执行每天定时任务的场景。Quartz是一款强大的开源作业调度框架,它可以用来按计划执行各种任务,...
6. **日志记录**:任务执行过程中的信息会被记录下来,包括成功、失败、警告等,有助于进行问题追踪和分析。 7. **错误预警**:当任务出现异常时,系统可以发送预警通知,如邮件、短信等,及时提醒管理员处理。 8....
- **利用 Job 完成后停止调度器**:可以在 Job 中实现逻辑,在任务执行完毕后关闭调度器。这种方式需要更细致地控制 Job 的生命周期。 ```java public void execute(JobExecutionContext context) throws ...
通过分析和实践,你可以掌握如何创建动态任务,如何根据业务需求调整任务执行策略,以及如何进行错误处理和监控。这将对你的Java开发事业,特别是在构建有定时任务需求的系统时,提供极大的帮助。
7. **停止调度**:当不再需要任务执行时,可以调用`scheduler.Shutdown()`来停止调度器。 在实际使用中,Quartz.NET提供了丰富的API,支持多种触发器类型,如SimpleTrigger、CronTrigger等,能够满足各种复杂的定时...
Quartz定时任务表达式,即Cron表达式,是Quartz框架中用于精确控制任务执行时间的强大工具。通过理解和掌握Cron表达式的语法和特性,开发者可以轻松实现复杂多变的定时任务需求,从而提升应用的自动化程度和效率。...
### quartz 动态执行定时任务 #### 背景与概念 在许多现代应用程序中,特别是在企业级应用中,往往需要实现对某些任务的周期性调度执行,例如定期备份数据库、定时发送邮件通知等。Quartz 是一个开源的作业调度...