`
lbritney
  • 浏览: 6510 次
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Quartz停止正在运行的Job

阅读更多

Job的重复次数如果只有1次,那么就没有办法对其过程进行操作,如:不能暂停 停止等,或者说是没有意义。

job每重复一次是quartz的最小单元。 如果重复次数大于1,到点击停止时为止,后面的次数就不执行了。这样做对于那些只需要执行一次的Job就不太公平了。

只能采用这样方式来停止仅重复一次的Job了:

让你的job实现InterruptableJob类,在实现类里构造interrupt()方法,最简单的就是给此方法加一个标志,

java 代码
  1. public void execute(JobExecutionContext context)   
  2.         throws JobExecutionException {   
  3.   
  4.     List emailList = null;   
  5.     for (Iterator iter = emailList.iterator(); iter.hasNext();) {   
  6.         if (!interrupt) {   
  7.             String email = (String) iter.next();   
  8.                                                                                      log.debug(email +" is Running");  
  9.         }else{  
  10.             String email = (String) iter.next();  
  11.             log.debug(email+" : is Stopped!");   
  12.         }   
  13.     }   
  14. }   
  15.   
  16. /*  
  17.  * (non-Javadoc)  
  18.  *   
  19.  * @see org.quartz.InterruptableJob#interrupt()  
  20.  */  
  21. public void interrupt() throws UnableToInterruptJobException {   
  22.     interrupt = true;   
  23.   
  24. }  

 

这样在ProxyImpl类中调用
     scheduler.interrupt(....);
     scheduler.deleteJob(....);

就可以了,委婉的实现了一下这样的功能。

不知道还有别的方法没,期待中.......

分享到:
评论
1 楼 hmh1985 2007-04-18  
不错,楼主的方法,我喜欢.学你呢!!!!

相关推荐

    Quartz调度、终止执行的任务

    当我们需要终止某个正在运行的任务时,了解如何在Quartz中操作是至关重要的。 首先,让我们详细讲解一下Quartz的基础知识。Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际要...

    spring和quartz的定时器的启动和停止例子

    5. **监控和管理任务**:Quartz提供了丰富的API和Web管理界面(如Jmx、QuartzAdmin),可以查看和管理所有的job和trigger,包括启动、停止、暂停、恢复等操作。 6. **异常处理**:为确保任务的健壮性,可以在Job类...

    Quartz-Job-Scheduling-Framework-中文版-V0.9.1.zip

    内容提要:配置、创建并运行 Quartz RMI 端户端,演示了 Quartz RMI 客户端通过远程调度器部署一个 Job 的 的例子。 第十章. J2EE 中使用 Quartz (第一部分) 内容提要:J2EE 中引入 Quartz。在 J2EE 环境中作为 ...

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界...“spring-quartz-demo”可能是一个完整的示例项目,你可以通过运行它来深入理解Quartz在Spring中的应用。通过研究这些资源,你可以更全面地掌握Quartz和Spring-Quartz的用法。

    quartz-1.6.0.jar和quartz-all-1.6.0.jar

    通过Spring的`SchedulerFactoryBean`,可以轻松地在Spring应用上下文中启动和停止Quartz调度器,同时Spring还支持声明式的方式定义Job和Trigger,使得配置更加简洁。 在实际应用中,定时任务通常用于执行后台数据...

    quartz的jar包

    - **并发控制**:Quartz支持限制同一Job的并发执行数量,避免多个实例同时运行造成问题。 - **持久化**:Job和Trigger的信息可以持久化到数据库,即使应用重启,之前的调度也不会丢失。 - **集群支持**:多个...

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    例如,你可以在程序运行时根据需要添加、修改或删除Job和Trigger。 6. **持久化**: 为了保证任务的可靠性和在服务器重启后的恢复,Quartz.NET支持数据库等持久化存储。这样,即使应用程序停止,任务信息也不会丢失...

    quartz封装

    - **Scheduler**:调度器,负责管理和执行Jobs,根据Triggers来决定何时运行Job。 - **Calendar**:日历对象,可以用于排除某些日期,使得在这些日期不触发Job。 3. **Quartz封装思路** - 创建Job类:将实际业务...

    对Quartz的简单封装

    Quartz是一款广泛使用的开源任务调度框架,用于在Java应用程序中实现定时任务的执行。...如果你正在寻找一种方式来管理和调度Java应用程序中的定时任务,那么学习这个封装的Quartz实现可能会对你有所帮助。

    Quartz定时任务框架

    在给定的压缩包文件中,"lib"目录可能包含了Quartz库的jar文件,这是运行Quartz任务所必需的依赖。为了运行上述代码,你需要确保项目中已经引入了Quartz库,或者将lib目录下的jar文件添加到项目的类路径中。 总之,...

    quartz完整资料

    - Job类:实现`org.quartz.Job`接口或继承`org.quartz.StatefulJob`(状态感知Job)。 - Trigger创建:使用`CronTrigger`(基于cron表达式)或`SimpleTrigger`(基于间隔时间)。 4. **Scheduler操作** - 启动...

    quartz简易定时器

    - **Trigger**: 触发器负责定义何时运行Job,它可以是简单触发器或cron触发器等。 - **Scheduler**: 调度器,负责管理和执行所有的Job和Trigger,它是Quartz的核心。 2. **配置Quartz** - 配置文件通常为`quartz...

    Java任务调度框架Quartz教程实例

    4. **运行**:上述代码中,我们定义了一个简单的Job,并使用`SimpleTrigger`来控制它的执行频率。通过`StdSchedulerFactory`创建一个`Scheduler`实例,并使用`getScheduler()`方法启动它。接着,使用`JobBuilder`和`...

    quartz-1.8.6.jar

    标题提到的是"quartz-1.8.6.jar",这表明我们正在讨论的是Quartz的一个特定版本,1.8.6。 集成Quartz到Spring的主要目的是利用Spring的依赖注入(DI)和管理功能来更好地控制和配置Job。以下是一些关键步骤和知识点...

    C#实现quartz.net3.0.7和topshelf4.2.1创建windows服务

    接着,定义作业(Job)类,这个类是实际执行的任务,以及触发器(Trigger)类,它定义了何时运行这个作业。你可以使用CronTrigger或者SimpleTrigger,根据具体需求选择合适的触发策略。 然后,配置调度器...

    关于spring中quartz的配置

    Spring提供的`SchedulerFactoryBean`允许在运行时动态地添加、修改和删除Job和Trigger,这样可以根据业务需求灵活调整定时任务。 通过以上步骤,你就可以在Spring中成功配置并使用Quartz进行任务调度了。注意,...

    C# quartz.net 定时任务源码 可以远程控制

    1. **作业与触发器**:在Quartz.NET中,任务被称为“作业”(Job),而触发任务执行的时间或规则称为“触发器”(Trigger)。开发者可以自定义作业类,实现特定的业务逻辑。 2. **持久化支持**:Quartz.NET支持将...

    spring2与quartz在Web整合

    通过查看源码,我们可以学习如何配置 Spring 和 Quartz,如何定义 Job 和 Trigger,以及如何在 Tomcat 下部署和运行应用。 7. **最佳实践**:为了优化性能和可维护性,推荐将 Quartz 的配置和作业定义分离,使得...

    C#Quartz定时任务

    主要涉及的类库有`Quartz`、`Quartz.Impl`等,它们包含了创建、配置和管理Job(任务)和Trigger(触发器)所需的所有接口和实现。 1. **Job**:Job是实际执行的工作单元,你可以自定义Job类来执行特定的任务。你...

Global site tag (gtag.js) - Google Analytics