Job的重复次数如果只有1次,那么就没有办法对其过程进行操作,如:不能暂停 停止等,或者说是没有意义。
job每重复一次是quartz的最小单元。 如果重复次数大于1,到点击停止时为止,后面的次数就不执行了。这样做对于那些只需要执行一次的Job就不太公平了。
只能采用这样方式来停止仅重复一次的Job了:
让你的job实现InterruptableJob类,在实现类里构造interrupt()方法,最简单的就是给此方法加一个标志,
java 代码
- public void execute(JobExecutionContext context)
- throws JobExecutionException {
-
- List emailList = null;
- for (Iterator iter = emailList.iterator(); iter.hasNext();) {
- if (!interrupt) {
- String email = (String) iter.next();
- log.debug(email +" is Running");
- }else{
- String email = (String) iter.next();
- log.debug(email+" : is Stopped!");
- }
- }
- }
-
-
-
-
-
-
- public void interrupt() throws UnableToInterruptJobException {
- interrupt = true;
-
- }
这样在ProxyImpl类中调用
scheduler.interrupt(....);
scheduler.deleteJob(....);
就可以了,委婉的实现了一下这样的功能。
不知道还有别的方法没,期待中.......
分享到:
相关推荐
当我们需要终止某个正在运行的任务时,了解如何在Quartz中操作是至关重要的。 首先,让我们详细讲解一下Quartz的基础知识。Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际要...
5. **监控和管理任务**:Quartz提供了丰富的API和Web管理界面(如Jmx、QuartzAdmin),可以查看和管理所有的job和trigger,包括启动、停止、暂停、恢复等操作。 6. **异常处理**:为确保任务的健壮性,可以在Job类...
内容提要:配置、创建并运行 Quartz RMI 端户端,演示了 Quartz RMI 客户端通过远程调度器部署一个 Job 的 的例子。 第十章. J2EE 中使用 Quartz (第一部分) 内容提要:J2EE 中引入 Quartz。在 J2EE 环境中作为 ...
Quartz和Spring-Quartz是两个在Java世界...“spring-quartz-demo”可能是一个完整的示例项目,你可以通过运行它来深入理解Quartz在Spring中的应用。通过研究这些资源,你可以更全面地掌握Quartz和Spring-Quartz的用法。
通过Spring的`SchedulerFactoryBean`,可以轻松地在Spring应用上下文中启动和停止Quartz调度器,同时Spring还支持声明式的方式定义Job和Trigger,使得配置更加简洁。 在实际应用中,定时任务通常用于执行后台数据...
- **并发控制**:Quartz支持限制同一Job的并发执行数量,避免多个实例同时运行造成问题。 - **持久化**:Job和Trigger的信息可以持久化到数据库,即使应用重启,之前的调度也不会丢失。 - **集群支持**:多个...
例如,你可以在程序运行时根据需要添加、修改或删除Job和Trigger。 6. **持久化**: 为了保证任务的可靠性和在服务器重启后的恢复,Quartz.NET支持数据库等持久化存储。这样,即使应用程序停止,任务信息也不会丢失...
- **Scheduler**:调度器,负责管理和执行Jobs,根据Triggers来决定何时运行Job。 - **Calendar**:日历对象,可以用于排除某些日期,使得在这些日期不触发Job。 3. **Quartz封装思路** - 创建Job类:将实际业务...
Quartz是一款广泛使用的开源任务调度框架,用于在Java应用程序中实现定时任务的执行。...如果你正在寻找一种方式来管理和调度Java应用程序中的定时任务,那么学习这个封装的Quartz实现可能会对你有所帮助。
在给定的压缩包文件中,"lib"目录可能包含了Quartz库的jar文件,这是运行Quartz任务所必需的依赖。为了运行上述代码,你需要确保项目中已经引入了Quartz库,或者将lib目录下的jar文件添加到项目的类路径中。 总之,...
- Job类:实现`org.quartz.Job`接口或继承`org.quartz.StatefulJob`(状态感知Job)。 - Trigger创建:使用`CronTrigger`(基于cron表达式)或`SimpleTrigger`(基于间隔时间)。 4. **Scheduler操作** - 启动...
- **Trigger**: 触发器负责定义何时运行Job,它可以是简单触发器或cron触发器等。 - **Scheduler**: 调度器,负责管理和执行所有的Job和Trigger,它是Quartz的核心。 2. **配置Quartz** - 配置文件通常为`quartz...
4. **运行**:上述代码中,我们定义了一个简单的Job,并使用`SimpleTrigger`来控制它的执行频率。通过`StdSchedulerFactory`创建一个`Scheduler`实例,并使用`getScheduler()`方法启动它。接着,使用`JobBuilder`和`...
标题提到的是"quartz-1.8.6.jar",这表明我们正在讨论的是Quartz的一个特定版本,1.8.6。 集成Quartz到Spring的主要目的是利用Spring的依赖注入(DI)和管理功能来更好地控制和配置Job。以下是一些关键步骤和知识点...
接着,定义作业(Job)类,这个类是实际执行的任务,以及触发器(Trigger)类,它定义了何时运行这个作业。你可以使用CronTrigger或者SimpleTrigger,根据具体需求选择合适的触发策略。 然后,配置调度器...
Spring提供的`SchedulerFactoryBean`允许在运行时动态地添加、修改和删除Job和Trigger,这样可以根据业务需求灵活调整定时任务。 通过以上步骤,你就可以在Spring中成功配置并使用Quartz进行任务调度了。注意,...
1. **作业与触发器**:在Quartz.NET中,任务被称为“作业”(Job),而触发任务执行的时间或规则称为“触发器”(Trigger)。开发者可以自定义作业类,实现特定的业务逻辑。 2. **持久化支持**:Quartz.NET支持将...
通过查看源码,我们可以学习如何配置 Spring 和 Quartz,如何定义 Job 和 Trigger,以及如何在 Tomcat 下部署和运行应用。 7. **最佳实践**:为了优化性能和可维护性,推荐将 Quartz 的配置和作业定义分离,使得...
主要涉及的类库有`Quartz`、`Quartz.Impl`等,它们包含了创建、配置和管理Job(任务)和Trigger(触发器)所需的所有接口和实现。 1. **Job**:Job是实际执行的工作单元,你可以自定义Job类来执行特定的任务。你...