@Override public void handle(Job job) { JobExecutionInfo jobExecutionInfo = new JobExecutionInfo(); jobExecutionInfo.setJobId(job.getId()); jobExecutionInfo.setSlaveReceivedTime(new Date()); job.setJobExecutionInfo(jobExecutionInfo); JobGroupExecutor executor = jobGroupExectuorMap.get(job.getKey().getGroup()); executor.doJob(new JobTask(job, executor.getJobConsumer())); // logger.info("Submit one job for group:" + executor.getGroup()); }
@Override public void run() { JobExecutionInfo jobExecutionInfo = job.getJobExecutionInfo(); try { jobExecutionInfo.setSlaveJobStartTime(new Date()); JobResult jobResult = jobConsumer.work(job); jobExecutionInfo.setSlaveJobEndTime(new Date()); jobExecutionInfo.setIsSucceed(true); jobExecutionInfo.setJobResult(jobResult); } catch (RuntimeException e) { // jobExecutionInfo.setIsSucceed(false); jobExecutionInfo.setExecutionException(new JobExecutionException(e)); logger.error("Execute job failed", e); e.printStackTrace(); } catch (Exception e) { // jobExecutionInfo.setIsSucceed(false); jobExecutionInfo.setExecutionException(new JobExecutionException(e)); logger.error("Execute job failed", e); e.printStackTrace(); } finally { try { /*if(doneJobQueue.size() > TOP_TASK_SCHEDULER_SLAVE_DONE_JOB_QUEUE_SIZE / 2) { node.startCommandProvider(SLAVE_PUSH_JOB_RESULT_COMMAND_PROVIDER_NAME); }*/ doneJobQueue.put(jobExecutionInfo); } catch (InterruptedException e) { logger.error(e); e.printStackTrace(); Thread.currentThread().interrupt(); } } }