Quartz Scheduler 不会以超过 10 个作业开始

问题描述 投票:0回答:1

嗨,我目前正在使用 Quartz Scheduler 来安排多个任务来执行计算。它们计划在每天的特定时间和分钟执行一次。但是自从我添加了第 11 个作业后,quart 就没有启动作业。我没有异常错误。

这是我的实现:

 JobDetail A = JobBuilder.newJob(A.class)
                                       .withIdentity("job1")
                                       .build();
             
             JobDetail B = JobBuilder.newJob(B.class)
                     .withIdentity("job2")
                     .build();
             
             
             JobDetail C = JobBuilder.newJob(C.class)
                     .withIdentity("job3")
                     .build();
             
             
             JobDetail D = JobBuilder.newJob(D.class)
                     .withIdentity("job4")
                     .build();
             
             JobDetail E = JobBuilder.newJob(E.class)
                     .withIdentity("job5")
                     .build();
             
             JobDetail F_hp = JobBuilder.newJob(F.class)
                     .withIdentity("job6")
                     .build();
             JobDetail G = JobBuilder.newJob(G.class)
                     .withIdentity("job7")
                     .build();
             
             JobDetail H = JobBuilder.newJob(H.class)
                     .withIdentity("job8")
                     .build();
             
             JobDetail I = JobBuilder.newJob(I.class)
                     .withIdentity("job9")
                     .build();
             
             JobDetail J = JobBuilder.newJob(J.class)
                     .withIdentity("job10")
                     .build();
             JobDetail K = JobBuilder.newJob(K.class)
                     .withIdentity("job11")
                     .build();

触发器初始化:


trigger = TriggerBuilder.newTrigger()
                            .withIdentity("trigger", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 
                 
                 trigger2 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger2", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 
                 trigger3 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger3", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 
                 
                 trigger4 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger4", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 
                 trigger5 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger5", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 
                 
                 trigger6 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger6", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 
                 trigger7 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger7", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 
                 trigger8 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger8", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 trigger9 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger9", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 trigger10 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger10", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();
                 trigger11 = TriggerBuilder.newTrigger()
                            .withIdentity("trigger11", "group1")
                            .withSchedule(dailyAtHourAndMinute(hour, minute))
                            .build();

SchedulerFactory schFactory = new StdSchedulerFactory();
             Scheduler sch = schFactory.getScheduler();
sch.start();
                 sch.scheduleJob(A, trigger);
                 sch.scheduleJob(B, trigger2);
                 sch.scheduleJob(C, trigger3);
                 sch.scheduleJob(D,trigger4);
                 sch.scheduleJob(E,trigger5);
                 sch.scheduleJob(F,trigger6);
                 sch.scheduleJob(G,trigger7);
                 sch.scheduleJob(H,trigger8);
                 sch.scheduleJob(I,trigger9);
                 sch.scheduleJob(J,trigger10);
                 sch.scheduleJob(K,trigger11);

注意:为了保护隐私,班级名称被屏蔽了

java spring quartz-scheduler
1个回答
1
投票

Quartz默认的线程池是10个,所以最多只能运行10个作业。

所以改变quartz.properties中的线程池是这样的:

org.quartz.scheduler.instanceName=SampleJobScheduler
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false
org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=20
org.quartz.threadPool.threadPriority=5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
org.quartz.jobStore.misfireThreshold=60000
org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore

org.quartz.threadPool.threadCount
的价值一定要设置的比你的jobs

© www.soinside.com 2019 - 2024. All rights reserved.