java quartz 停止正在进行的任务解决方案

转载 2016年05月31日 09:10:00
新建的Job实现InterruptableJob,在Job中实现interrupt()方法。如下:

 

public abstract class TestJob implements InterruptableJob {
private boolean _interrupted = false;
@Override
public void interrupt() throws UnableToInterruptJobException {
System.out.println(“外界正在调用调度器停止这个任务key: ” + _jobKeyName+”,执行其他任务。”);
_interrupted = true;
}

 

当要立即停止当前正在运行的任务的时候,通过调用scheduler1.pauseTrigger(“监听名称”,”监听组名称”)(该方法表示接下来的任务将暂停该监听器,也就暂停了任务,但是不会停止正在运行的任务);scheduler1.interrupt(“任务名称”,”任务组名称”);。调用scheduler1.interrupt这个方法就会执行Job中实现的interrupt() 方法,从而改变了变量_interrupted ,在执行中进行这个标记判断就可实现中断任务了,如:

for (int i = 0; i < 10; i++) {

if(_interrupted)break;
float wd = JavaJNA.instance.ReadSensor(ip,port,1,1,wdtype,wdattribute);
for (int j = 0; j<3; j++) {
if(String.valueOf(wd).equals(“-999.9″)){
wd = JavaJNA.instance.ReadSensor(ip,port,1,1,wdtype,wdattribute);
}else
break;
}
if(_interrupted)break;
float sd = JavaJNA.instance.ReadSensor(ip,port,1,1,sdtype,sdattribute);
for (int j = 0; j<3; j++) {
if(String.valueOf(sd).equals(“-999.9″)){
sd = JavaJNA.instance.ReadSensor(ip,port,1,1,sdtype,sdattribute);
}else
break;
}s

}

相关文章推荐

java编程式控制quartz Scheduler 启动和停止,无法停止的问题解决

在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。       在spring 配置中把自...

MyBatis代码自动生成

这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生...

quartz 动态添加任务、暂停、删除

配置文件application-quartz.xml <beans xmlns="http://www.springframework.org/schema/beans" xmln...

Quartz的任务的临时启动和暂停和恢复

Quartz的任务的临时启动和暂停和恢复   在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。...

java系统中使用调度器Quartz实现对正在执行任务的停止

最近在进行数据迁移的任务(就是迁移历史数据),数据量很大,需要运行几个月才能运行完。要求是每天的非工作时间定时进行迁移,正常上班的时间自动停止。自然就想到了使用Quartz来执行定时任务。每天定时的启...

服务停止后,quartz自动任务无法停止

环境: quartz自动任务每分钟执行一次,并且是执行一个死循环。将此工程部署在websphere的一个节点node1中。启动节点服务,执行自动任务,由于自动任务是死循环,所以是不会停止的,而且每分...

使用Spring Quartz做自动任务 启动和关闭

因开发需要做一个队自动任务的开关,网上的搜索的结果都不是很满意,考虑到spring本身使用的是单例模式,所以在springMVC中开发是最适合的。/** * 启动、关闭自动通过 * @auth...

JAVA并发编程(四)任务的取消与关闭

使用简单标志位保存取消状态 为了保证标志位可靠,标志必须为volatile类型。 使用标志位来取消任务是不及时的,如果中间调用了阻塞方法,有可能永远都无法结束。 每个线程都有一个boolean类型的中...

任务调度开源框架Quartz动态添加、修改和删除定时任务

Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于...

VMware tool安装遇“正在进行简易安装时,无法手动启动VMware tools安装”问题的解决方案

中文版的VMware安装VMware tools 错误解决方案
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)