Я использую кварцевый планировщик в Java.
Я хочу создать многопоточную среду, в которой одновременно работают несколько планировщиков.
Динамически поток должен быть добавлен или удален. (без перезапуска приложения)
==================================================================== Main.java
Scheduler schduler = new StdSchedulerFactory().getScheduler();
List<SimpleTriggerImpl> triggerList = new ArrayList<SimpleTriggerImpl>();
List<JobDetail> jobDetailList = new ArrayList<JobDetail>();
jobDetailList.add(JobBuilder.newJob(JobTest1.class).build());
jobDetailList.add(JobBuilder.newJob(JobTest2.class).build());
for (int i = 0; i < 2; i++) {
triggerList.add((SimpleTriggerImpl) TriggerBuilder.newTrigger()
.withIdentity(String.valueOf(i), Scheduler.DEFAULT_GROUP).startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withMisfireHandlingInstructionNowWithExistingCount().withIntervalInMilliseconds(10000)
.withRepeatCount(SimpleTriggerImpl.REPEAT_INDEFINITELY))
.build());
}
schduler.scheduleJob(jobDetailList.get(0), triggerList.get(0));
schduler.scheduleJob(jobDetailList.get(1), triggerList.get(1));
schduler.start();
JobTest1.java
public class JobTest1 implements Job{
public void execute(JobExecutionContext context) throws JobExecutionException {
for(int i = 0; i<10;i++) {
System.out.println("this is JobTest1");
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
JabTest2.java
public class JobTest2 implements Job{
public void execute(JobExecutionContext context) throws JobExecutionException {
for(int i = 0; i<10;i++) {
System.out.println("this is JobTest2");
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
вопрос
Как завершить некоторые определенные потоки в многопоточной среде
Как проверить текущий интервал потоков в методе execute (), который реализует задание
Как добавить новый поток в метод execute (), который реализует задание