public void run() { for( JobDetails details : job.getRunnableDetailList() ) { try { // for now, we have only runtime data cleanup cron job defined // for each clean up for the scheduled time RuntimeDataCleanupRunnable cleanup = new RuntimeDataCleanupRunnable(); synchronized( _terminationListenersByPid ) { if( !_terminationListenersByPid.isEmpty() ) { details.getDetailsExt().put("pidsToExclude", _terminationListenersByPid.keySet()); } } cleanup.restoreFromDetails(details); cleanup.setContexts(_contexts); cleanup.run(); if( __log.isDebugEnabled() ) __log.debug("Finished running runtime data cleanup from a SYSTEM CRON job:" + cleanup); } catch( Exception e ) { __log.error("Error running a runtime data cleanup from a SYSTEM CRON job: " + details + "; check your system cron setup.", e); } } } };
if( __log.isDebugEnabled() ) __log.debug("Scheduling PROCESS CRON job: " + job.getCronExpression() + " for: " + pid); newListeners.add(schedule(job.getCronExpression(), runnable, null, null));
_systemTerminationListeners.add(schedule(job.getCronExpression(), runnable, null, null));
schedules.getScheduleArray().length > 0) { for (TSchedule schedule : schedules.getScheduleArray()) { ProcessConf.CronJob job = new ProcessConf.CronJob(); job.setCronExpression(new CronExpression(schedule.getWhen())); for (final TCleanup aCleanup : schedule.getCleanupArray()) { ProcessConf.CleanupInfo cleanupInfo = new ProcessConf.CleanupInfo(); cleanupInfo); runnableDetails.getDetailsExt().put(BPELConstants.ODE_DETAILS_EXT_TRANSACTION_SIZE, 10); job.getRunnableDetailList().add(runnableDetails);
CronJob job = new CronJob(); try { job.setCronExpression(new CronExpression(schedule.getWhen())); for(final TCleanup aCleanup : schedule.getCleanupList()) { CleanupInfo cleanupInfo = new CleanupInfo(); job.getRunnableDetailList().add(runnableDetails); __log.info("SYSTEM CRON configuration added a runtime data cleanup: " + runnableDetails);
public List<CronJob> getCronJobs() { List<CronJob> jobs = new ArrayList<CronJob>(); for (TSchedule schedule : processInfo.getScheduleList()) { CronJob job = new CronJob(); try { job.setCronExpression(new CronExpression(schedule.getWhen())); for (final TCleanup aCleanup : schedule.getCleanupList()) { CleanupInfo cleanupInfo = new CleanupInfo(); assert !aCleanup.getFilterList().isEmpty(); cleanupInfo.setFilters(aCleanup.getFilterList()); ProcessCleanupConfImpl.processACleanup(cleanupInfo.getCategories(), aCleanup.getCategoryList()); Scheduler.JobDetails runnableDetails = new Scheduler.JobDetails(); runnableDetails.getDetailsExt(). put(BPELConstants.ODE_DETAILS_EXT_CLEAN_UP_INFO, cleanupInfo); runnableDetails.setProcessId(processId); runnableDetails.getDetailsExt(). put(BPELConstants.ODE_DETAILS_EXT_TRANSACTION_SIZE, 10); job.getRunnableDetailList().add(runnableDetails); } jobs.add(job); } catch (ParseException pe) { log.error("Exception during parsing the schedule cron expression: " + schedule.getWhen() + ", skipped the scheduled job.", pe); } } return jobs; }
public List<CronJob> getCronJobs() { List<CronJob> jobs = new ArrayList<CronJob>(); for(TSchedule schedule : _pinfo.getScheduleList()) { CronJob job = new CronJob(); try { job.setCronExpression(new CronExpression(schedule.getWhen())); for(final TCleanup aCleanup : schedule.getCleanupList()) { CleanupInfo cleanupInfo = new CleanupInfo(); assert !aCleanup.getFilterList().isEmpty(); cleanupInfo.setFilters(aCleanup.getFilterList()); ProcessCleanupConfImpl.processACleanup(cleanupInfo.getCategories(), aCleanup.getCategoryList()); JobDetails runnableDetails = new JobDetails(); runnableDetails.getDetailsExt().put("cleanupInfo", cleanupInfo); runnableDetails.getDetailsExt().put("pid", _pid); runnableDetails.getDetailsExt().put("transactionSize", 10); job.getRunnableDetailList().add(runnableDetails); } jobs.add(job); } catch( ParseException pe ) { __log.error("Exception during parsing the schedule cron expression: " + schedule.getWhen() + ", skipped the scheduled job.", pe); } } return jobs; } }
public List<CronJob> getCronJobs() { List<CronJob> jobs = new ArrayList<CronJob>(); for(TSchedule schedule : _pinfo.getScheduleList()) { CronJob job = new CronJob(); try { job.setCronExpression(new CronExpression(schedule.getWhen())); for(final TCleanup aCleanup : schedule.getCleanupList()) { CleanupInfo cleanupInfo = new CleanupInfo(); assert !aCleanup.getFilterList().isEmpty(); cleanupInfo.setFilters(aCleanup.getFilterList()); ProcessCleanupConfImpl.processACleanup(cleanupInfo.getCategories(), aCleanup.getCategoryList()); JobDetails runnableDetails = new JobDetails(); runnableDetails.getDetailsExt().put("cleanupInfo", cleanupInfo); runnableDetails.setProcessId(_pid); runnableDetails.getDetailsExt().put("transactionSize", 10); job.getRunnableDetailList().add(runnableDetails); } jobs.add(job); } catch( ParseException pe ) { __log.error("Exception during parsing the schedule cron expression: " + schedule.getWhen() + ", skipped the scheduled job.", pe); } } return jobs; }
public void run() { if( __log.isDebugEnabled() ) __log.debug("Running cron cleanup with details list size: " + job.getRunnableDetailList().size()); for( JobDetails details : job.getRunnableDetailList() ) { try { // for each clean up for the scheduled time RuntimeDataCleanupRunnable cleanup = new RuntimeDataCleanupRunnable(); cleanup.restoreFromDetails(details); cleanup.setContexts(_contexts); cleanup.run(); if( __log.isDebugEnabled() ) __log.debug("Finished running runtime data cleanup from a PROCESS CRON job: " + cleanup); } catch(Exception re) { __log.error("Error during runtime data cleanup from a PROCESS CRON: " + details + "; check your cron settings in deploy.xml.", re); // don't sweat.. the rest of the system and other cron jobs still should work } } } };