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
}