问题描述
我有一个使用Jboss EAP 6平台的ejb应用程序。我已经定义了一个单例ejb服务,该服务处理计划相关的操作(暂停,计划,取消计划作业)。
当我同时调度10个作业时,我会遇到一些性能问题,每个调度作业的操作都需要花费很多时间。甚至我还有一些失火问题。启动服务器时不会发生。但是经过第二次审判,这又是一个问题。我试图更改quartz.properties中的线程数。但这没有任何影响。
我注意到此延迟与Quartz的锁定机制有关。
@Singleton
@Startup
@DependsOn("DSADatabaseInitializerBean")
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
@Lock(LockType.READ)
public class ScheduleManagementBean implements SchedulerManagementBeanRemote,SchedulerManagementBeanLocal {
private Scheduler scheduler;
@postconstruct
public void scheduleJobs() {
try {
scheduler = new StdSchedulerFactory("quartz.properties").getScheduler();
scheduler.start();
} catch (SchedulerException e) {
logger.error("Error while creating scheduler",e);
}
}
@Override
public void addSPPeriodicJobToList(int period,List<SimulationJob> simJobList) {
JobDetail jobDetail;
Trigger jobTrigger;
try {
for (SimulationJob simJob : simJobList) { // configure the scheduler time
// define the job and tie it to our HelloJob class
jobDetail = newJob(SimulationJobExecution.class).withIdentity(Long.toString(simJob.getId()),Long.toString(simJob.getvariant().getId())).storeDurably(true).requestRecovery().build();
// Trigger the job to run between start Time and end time,and then repeat every 15
// minutes
jobTrigger = newTrigger().withIdentity(Long.toString(simJob.getId()),Long.toString(simJob.getvariant().getId())).startAt(simJob.getStartDateTime()).endAt(
simJob.getEndDateTime()).withPriority(simJob.getPriority()).withSchedule(
simpleSchedule().withIntervalInMilliseconds(
period).repeatForever().withMisfireHandlingInstructionNextWithRemainingCount()).build();
scheduler.scheduleJob(jobDetail,jobTrigger);
logger.info("Job is created with key: " + jobDetail.getKey());
}
} catch (SchedulerException e) {
logger.error("Unable to schedule job with key!" + jobDetail.getKey(),e);
}
}
}
在这里您可以找到日志。
12:11:24,637 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1708
12:11:32,066 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1709
12:11:42,066 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1710
[com..server.simulation.ejb.ScheduleManagementBean] (EJB default - 7) Job is
created with key: 1.1711
12:12:00,558 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1712
12:12:00,572 INFO [com.siemen.server.simulation.ejb.ScheduleManagementBean]
(EJB default - 7) Job is created with key: 1.1713
12:12:00,577 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1714
12:12:00,582 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1715
12:12:00,587 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1716
12:12:00,593 INFO [com.server.simulation.ejb.ScheduleManagementBean] (EJB
default - 7) Job is created with key: 1.1717
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)