我是靠谱客的博主 从容摩托,这篇文章主要介绍ScheduledExecutorService 根据条件终止调度任务,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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<String, Future> futureMap = new ConcurrentHashMap<String, Future>(); 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(); }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
} public class JobTest implements Runnable { private ConcurrentHashMap<String, Future> futureMap; private int count = 0; private String jobId; public JobTest(String jobId,ConcurrentHashMap<String, Future> 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<String, Future> getFutureMap() { return futureMap; } public void setFutureMap(ConcurrentHashMap<String, Future> futureMap) { this.futureMap = futureMap; } public String getJobId() { return jobId; } public void setJobId(String jobId) { this.jobId = jobId; } }

最后

以上就是从容摩托最近收集整理的关于ScheduledExecutorService 根据条件终止调度任务的全部内容,更多相关ScheduledExecutorService内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部