石英触发器已成为过去
Quartz triggers are in the past
我有 750 个 Quartz 作业,每个作业有 1 个触发器。
转储触发器数据显示下一次触发时间是过去的时间。
转储来自 15:55 Berlin/Europe 时区。
nextfire 时间是错误的还是 Quartz 因作业过多而过载?
Quartz 工作
Name= INSTANT_KPI_DEF_ID_1000708 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000829 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000707 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000828 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000706 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000827 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000705 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000826 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
我发现 quartz 默认配置为只有 10 个 运行 作业。
我将其更改为 200,现在我碰到的下一堵墙是 oracle 不喜欢同时建立那么多连接。
SchedulerFactoryBean quartzScheduler = new SchedulerFactoryBean();
quartzScheduler.setSchedulerName("rm-quartz-scheduler");
Properties props = new Properties();
// Thread pooling
props.put("org.quartz.threadPool.class", org.quartz.simpl.SimpleThreadPool.class.getName());
props.put("org.quartz.threadPool.threadCount", "200");
props.put("org.quartz.threadPool.threadPriority", "5");
quartzScheduler.setQuartzProperties(props);
您可以通过指定
来控制与数据库的连接数
org.quartz.dataSource.myDS.maxConnections = 5
参考此处获取示例配置
JDBC-JobStore Configuration
我有 750 个 Quartz 作业,每个作业有 1 个触发器。
转储触发器数据显示下一次触发时间是过去的时间。 转储来自 15:55 Berlin/Europe 时区。
nextfire 时间是错误的还是 Quartz 因作业过多而过载?
Quartz 工作
Name= INSTANT_KPI_DEF_ID_1000708 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000829 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000707 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000828 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000706 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000827 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000705 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
Name= INSTANT_KPI_DEF_ID_1000826 Group=DEFAULT NextFireTime=Thu Feb 09 15:15:30 CET 2017 Priority=5 Paused=NOT PAUSED Triggers #=1
我发现 quartz 默认配置为只有 10 个 运行 作业。 我将其更改为 200,现在我碰到的下一堵墙是 oracle 不喜欢同时建立那么多连接。
SchedulerFactoryBean quartzScheduler = new SchedulerFactoryBean();
quartzScheduler.setSchedulerName("rm-quartz-scheduler");
Properties props = new Properties();
// Thread pooling
props.put("org.quartz.threadPool.class", org.quartz.simpl.SimpleThreadPool.class.getName());
props.put("org.quartz.threadPool.threadCount", "200");
props.put("org.quartz.threadPool.threadPriority", "5");
quartzScheduler.setQuartzProperties(props);
您可以通过指定
来控制与数据库的连接数org.quartz.dataSource.myDS.maxConnections = 5
参考此处获取示例配置 JDBC-JobStore Configuration