java jobkey_Java JobBuilder.newJob方法代码示例

import org.quartz.JobBuilder; //导入方法依赖的package包/类

/**

* 新增job

*

* @param inputObject

* @param outputObject

* @throws Exception

*/

public boolean updateTask(TaskScheduled taskScheduled) {

String jobGroup = taskScheduled.getTaskGroup();

if (DataUtil.isEmpty(jobGroup)) {

jobGroup = "ds_job";

}

String jobName = taskScheduled.getTaskName();

if (DataUtil.isEmpty(jobName)) {

jobName = String.valueOf(System.currentTimeMillis());

}

String cronExpression = taskScheduled.getTaskCron();

String targetObject = taskScheduled.getTargetObject();

String targetMethod = taskScheduled.getTargetMethod();

String jobDescription = taskScheduled.getTaskDesc();

String jobType = taskScheduled.getJobType();

String taskType = taskScheduled.getTaskType();

JobDataMap jobDataMap = new JobDataMap();

if (TaskType.dubbo.equals(taskType)) {

jobDataMap.put("targetSystem", taskScheduled.getTargetSystem());

}

jobDataMap.put("targetObject", targetObject);

jobDataMap.put("targetMethod", targetMethod);

jobDataMap.put("taskType", taskType);

jobDataMap.put("contactName", taskScheduled.getContactName());

jobDataMap.put("contactEmail", taskScheduled.getContactEmail());

JobBuilder jobBuilder = null;

if (JobType.job.equals(jobType)) {

jobBuilder = JobBuilder.newJob(BaseJob.class);

} else if (JobType.statefulJob.equals(jobType)) {

jobBuilder = JobBuilder.newJob(StatefulJob.class);

}

if (jobBuilder != null) {

JobDetail jobDetail = jobBuilder.withIdentity(jobName, jobGroup).withDescription(jobDescription)

.storeDurably(true).usingJobData(jobDataMap).build();

Trigger trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(cronExpression))

.withIdentity(jobName, jobGroup).withDescription(jobDescription).forJob(jobDetail)

.usingJobData(jobDataMap).build();

try {

JobDetail detail = scheduler.getJobDetail(new JobKey(jobName, jobGroup));

if (detail == null) {

scheduler.scheduleJob(jobDetail, trigger);

} else {

scheduler.addJob(jobDetail, true);

scheduler.rescheduleJob(new TriggerKey(jobName, jobGroup), trigger);

}

return true;

} catch (SchedulerException e) {

logger.error("SchedulerException", "SchedulerException", e);

throw new BusinessException(e);

}

}

return false;

}


版权声明:本文为weixin_42168555原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。