public String scheduleMapSerializableRunnable(MapSerializableRunnable runnable, Date when) throws ContextException { long ctime = System.currentTimeMillis(); if (when == null) when = new Date(ctime); JobDetails jobDetails = new JobDetails(); jobDetails.getDetailsExt().put("runnable", runnable); runnable.storeToDetails(jobDetails); if (__log.isDebugEnabled()) __log.debug("scheduling " + jobDetails + " for " + when); return schedulePersistedJob(new Job(when.getTime(), true, jobDetails), when, ctime); }
if( runnableDetails != null && runnable instanceof MapSerializableRunnable ) { ((MapSerializableRunnable)runnable).restoreFromDetails(runnableDetails);
public void run() { try { MapSerializableRunnable runnable = (MapSerializableRunnable)jobInfo.jobDetail.getDetailsExt().get("runnable"); runnable.restoreFromDetails(jobInfo.jobDetail); if( runnable instanceof ContextsAware ) { ((ContextsAware)runnable).setContexts(_contexts); } runnable.run(); synchronized( resultsByJobId ) { resultsByJobId.put(jobInfo.jobName, new PolledRunnableResults(JOB_STATUS.COMPLETED, null)); } } catch( Exception e) { __log.error("", e); synchronized( resultsByJobId ) { resultsByJobId.put(jobInfo.jobName, new PolledRunnableResults(JOB_STATUS.FAILED, e)); } } finally { } } });
public String scheduleMapSerializableRunnable(MapSerializableRunnable runnable, Date when) throws ContextException { long ctime = System.currentTimeMillis(); if (when == null) when = new Date(ctime); JobDetails jobDetails = new JobDetails(); jobDetails.getDetailsExt().put("runnable", runnable); runnable.storeToDetails(jobDetails); if (__log.isDebugEnabled()) __log.debug("scheduling " + jobDetails + " for " + when); return schedulePersistedJob(jobDetails, true, when, ctime); }