Skip to content

Commit c804336

Browse files
committed
reschedule delete job when reload
1 parent bbf6856 commit c804336

1 file changed

Lines changed: 34 additions & 38 deletions

File tree

metamorphosis-server/src/main/java/com/taobao/metamorphosis/server/store/MessageStoreManager.java

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -17,44 +17,6 @@
1717
*/
1818
package com.taobao.metamorphosis.server.store;
1919

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-
5820
import com.taobao.metamorphosis.server.Service;
5921
import com.taobao.metamorphosis.server.exception.IllegalTopicException;
6022
import com.taobao.metamorphosis.server.exception.MetamorphosisServerStartupException;
@@ -63,6 +25,25 @@
6325
import com.taobao.metamorphosis.server.utils.MetaConfig;
6426
import com.taobao.metamorphosis.server.utils.TopicConfig;
6527
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;
6647

6748

6849
/**
@@ -134,6 +115,7 @@ public MessageStoreManager(final MetaConfig metaConfig, final DeletePolicy delet
134115
public void propertyChange(final PropertyChangeEvent evt) {
135116
MessageStoreManager.this.makeTopicsPatSet();
136117
MessageStoreManager.this.newDeletePolicySelector();
118+
MessageStoreManager.this.rescheduleDeleteJobs();
137119
}
138120
});
139121

@@ -485,6 +467,20 @@ public void init() {
485467
this.startScheduleDeleteJobs();
486468
}
487469

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+
}
488484

489485
private void startScheduleDeleteJobs() {
490486
final Map<String/* deleteWhen */, JobInfo> jobs = new HashMap<String, MessageStoreManager.JobInfo>();

0 commit comments

Comments
 (0)