스케줄 러 서비스 조건 에 따라 스케줄 러 작업 종료
2045 단어 자바기술 을 개발 하 다
package com.taobao.vcloud.scheduler.job;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ConditionCancelScheduler {
public static void main(String[] args) throws Exception {
ConcurrentHashMap futureMap = new ConcurrentHashMap();
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(3);
JobTest job_1 = new JobTest("job_1", futureMap);
Future future = scheduler.scheduleAtFixedRate(job_1, 1, 5, TimeUnit.SECONDS);
futureMap.put(job_1.getJobId(), future);
//Thread.sleep(10000);
JobTest job_2 = new JobTest("job_22", futureMap);
Future future_2 = scheduler.scheduleAtFixedRate(job_2, 1, 5, TimeUnit.SECONDS);
futureMap.put(job_2.getJobId(), future_2);
Thread.sleep(20000);
System.out.println("test over");
scheduler.shutdown();
}
}
public class JobTest implements Runnable {
private ConcurrentHashMap futureMap;
private int count = 0;
private String jobId;
public JobTest(String jobId,ConcurrentHashMap futureMap){
this.jobId = jobId;
this.futureMap = futureMap;
}
@Override
public void run() {
count++;
System.out.println("this is " + count);
if (count > 1) {
try {
Future future = futureMap.remove(jobId);
future.cancel(true);
} finally {
System.out.println("jobId "+jobId +"had cancel");
}
}
}
public ConcurrentHashMap getFutureMap() {
return futureMap;
}
public void setFutureMap(ConcurrentHashMap futureMap) {
this.futureMap = futureMap;
}
public String getJobId() {
return jobId;
}
public void setJobId(String jobId) {
this.jobId = jobId;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.