|
17 | 17 | */ |
18 | 18 | package com.taobao.metamorphosis.server.store; |
19 | 19 |
|
20 | | -import static org.quartz.CronScheduleBuilder.cronSchedule; |
21 | | -import static org.quartz.JobBuilder.newJob; |
22 | | -import static org.quartz.TriggerBuilder.newTrigger; |
23 | | - |
24 | | -import java.beans.PropertyChangeEvent; |
25 | | -import java.beans.PropertyChangeListener; |
26 | | -import java.io.File; |
27 | | -import java.io.IOException; |
28 | | -import java.util.ArrayList; |
29 | | -import java.util.Collection; |
30 | | -import java.util.Collections; |
31 | | -import java.util.HashMap; |
32 | | -import java.util.HashSet; |
33 | | -import java.util.List; |
34 | | -import java.util.Map; |
35 | | -import java.util.Random; |
36 | | -import java.util.Set; |
37 | | -import java.util.TreeSet; |
38 | | -import java.util.concurrent.Callable; |
39 | | -import java.util.concurrent.CompletionService; |
40 | | -import java.util.concurrent.ConcurrentHashMap; |
41 | | -import java.util.concurrent.ExecutionException; |
42 | | -import java.util.concurrent.ExecutorCompletionService; |
43 | | -import java.util.concurrent.ExecutorService; |
44 | | -import java.util.concurrent.Executors; |
45 | | -import java.util.concurrent.ScheduledFuture; |
46 | | -import java.util.concurrent.ScheduledThreadPoolExecutor; |
47 | | -import java.util.concurrent.TimeUnit; |
48 | | -import java.util.regex.Pattern; |
49 | | - |
50 | | -import org.apache.commons.logging.Log; |
51 | | -import org.apache.commons.logging.LogFactory; |
52 | | -import org.quartz.JobDetail; |
53 | | -import org.quartz.Scheduler; |
54 | | -import org.quartz.SchedulerException; |
55 | | -import org.quartz.Trigger; |
56 | | -import org.quartz.impl.DirectSchedulerFactory; |
57 | | - |
58 | 20 | import com.taobao.metamorphosis.server.Service; |
59 | 21 | import com.taobao.metamorphosis.server.exception.IllegalTopicException; |
60 | 22 | import com.taobao.metamorphosis.server.exception.MetamorphosisServerStartupException; |
|
63 | 25 | import com.taobao.metamorphosis.server.utils.MetaConfig; |
64 | 26 | import com.taobao.metamorphosis.server.utils.TopicConfig; |
65 | 27 | import com.taobao.metamorphosis.utils.ThreadUtils; |
| 28 | +import org.apache.commons.logging.Log; |
| 29 | +import org.apache.commons.logging.LogFactory; |
| 30 | +import org.quartz.JobDetail; |
| 31 | +import org.quartz.Scheduler; |
| 32 | +import org.quartz.SchedulerException; |
| 33 | +import org.quartz.Trigger; |
| 34 | +import org.quartz.impl.DirectSchedulerFactory; |
| 35 | + |
| 36 | +import java.beans.PropertyChangeEvent; |
| 37 | +import java.beans.PropertyChangeListener; |
| 38 | +import java.io.File; |
| 39 | +import java.io.IOException; |
| 40 | +import java.util.*; |
| 41 | +import java.util.concurrent.*; |
| 42 | +import java.util.regex.Pattern; |
| 43 | + |
| 44 | +import static org.quartz.CronScheduleBuilder.cronSchedule; |
| 45 | +import static org.quartz.JobBuilder.newJob; |
| 46 | +import static org.quartz.TriggerBuilder.newTrigger; |
66 | 47 |
|
67 | 48 |
|
68 | 49 | /** |
@@ -134,6 +115,7 @@ public MessageStoreManager(final MetaConfig metaConfig, final DeletePolicy delet |
134 | 115 | public void propertyChange(final PropertyChangeEvent evt) { |
135 | 116 | MessageStoreManager.this.makeTopicsPatSet(); |
136 | 117 | MessageStoreManager.this.newDeletePolicySelector(); |
| 118 | + MessageStoreManager.this.rescheduleDeleteJobs(); |
137 | 119 | } |
138 | 120 | }); |
139 | 121 |
|
@@ -485,6 +467,20 @@ public void init() { |
485 | 467 | this.startScheduleDeleteJobs(); |
486 | 468 | } |
487 | 469 |
|
| 470 | + //add by jenwang |
| 471 | + private void rescheduleDeleteJobs() { |
| 472 | + if (this.scheduler != null) { |
| 473 | + try { |
| 474 | + log.info("Begin clear delete jobs..."); |
| 475 | + scheduler.clear(); |
| 476 | + |
| 477 | + startScheduleDeleteJobs(); |
| 478 | + log.info("Reschedule delete jobs successful !"); |
| 479 | + } catch (final SchedulerException e) { |
| 480 | + log.error("Reschedule delete jobs failed", e); |
| 481 | + } |
| 482 | + } |
| 483 | + } |
488 | 484 |
|
489 | 485 | private void startScheduleDeleteJobs() { |
490 | 486 | final Map<String/* deleteWhen */, JobInfo> jobs = new HashMap<String, MessageStoreManager.JobInfo>(); |
|
0 commit comments