本文整理汇总了Java中org.quartz.CronScheduleBuilder类的典型用法代码示例。如果您正苦于以下问题:Java CronScheduleBuilder类的具体用法?Java CronScheduleBuilder怎么用?Java CronScheduleBuilder使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
CronScheduleBuilder类属于org.quartz包,在下文中一共展示了CronScheduleBuilder类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildTrigger
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
@SuppressWarnings({ "unchecked", "rawtypes" })
private Trigger buildTrigger(String confId, JobScheduling conf, JobKey job) {
TriggerKey key = this.buildTiggerKey(confId);
TriggerBuilder trigger = TriggerBuilder.newTrigger().withIdentity(key);
// Set CRON value
if (StringUtils.isNotEmpty(conf.getValue())) {
trigger.withSchedule(CronScheduleBuilder.cronSchedule(conf.getValue()));
}
// Set DATE value
if (conf.getStartAt() > 0) {
trigger.startAt(new Date(conf.getStartAt()));
}
if (job != null) {
trigger.forJob(job);
}
return trigger.build();
}
示例2: scheduleJob
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
/**
* The user may configure this binding to update the internal clock of
* FHT80b devices via rf command. The method takes care of scheduling this
* job.
*/
private JobKey scheduleJob(Class<? extends Job> jobClass, String cronExpression) {
JobKey jobKey = null;
try {
Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
JobDetail detail = JobBuilder.newJob(jobClass).withIdentity("FHT "+jobClass.getSimpleName(), "cul").build();
detail.getJobDataMap().put(FHTBinding.class.getName(), this);
CronTrigger trigger = TriggerBuilder.newTrigger().forJob(detail)
.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).build();
jobKey = detail.getKey();
sched.scheduleJob(detail, trigger);
} catch (SchedulerException e) {
logger.error("Can't schedule time update job", e);
}
return jobKey;
}
示例3: addSchedule
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
/**
* 增加一个调度任务(cron版)
*
* @param name
* 任务名称
* @param job
* 执行内容
* @param cronExpression
* cron表达式
* @throws SchedulerException
*/
public Trigger addSchedule(String name, Class<? extends Job> task, String cronExpression, JobDataMap param)
throws SchedulerException {
Scheduler sched = SF.getScheduler();
JobBuilder builder = JobBuilder.newJob(task);
builder.withIdentity(name, Scheduler.DEFAULT_GROUP);
if (param != null) {
builder.usingJobData(param);
}
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(name, Scheduler.DEFAULT_GROUP)
.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).build();
sched.scheduleJob(builder.build(), trigger);
if (!sched.isShutdown())
sched.start();
return trigger;
}
示例4: modifyJobTime
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
/**
* @Description: 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)
* @param jobName
* @param time
*
*/
@SuppressWarnings("unchecked")
public static void modifyJobTime(String jobName, String time) {
TriggerKey triggerKey = TriggerKey.triggerKey(
jobName, TRIGGER_GROUP_NAME);
try {
Scheduler sched = gSchedulerFactory.getScheduler();
CronTrigger trigger =(CronTrigger) sched.getTrigger(triggerKey);
if (trigger == null) {
return;
}
String oldTime = trigger.getCronExpression();
if (!oldTime.equalsIgnoreCase(time)) {
CronScheduleBuilder scheduleBuilder =CronScheduleBuilder.cronSchedule(time);
//按新的cronExpression表达式重新构建trigger
trigger = trigger.getTriggerBuilder().withIdentity(triggerKey)
.withSchedule(scheduleBuilder).build();
//按新的trigger重新设置job执行
sched.rescheduleJob(triggerKey, trigger);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
示例5: create
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
@Override
public void create(ScheduleJob scheduleJob) throws SchedulerException {
Scheduler scheduler = schedulerFactoryBean.getScheduler();
Class<? extends Job> jobClass = null;
try {
jobClass = (Class<? extends Job>) Class.forName(scheduleJob.getJobClassName());
} catch (ClassNotFoundException e) {
throw new SchedulerException(e);
}
if (null != jobClass) {
JobDetail jobDetail = JobBuilder.newJob(jobClass)
.withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroupName())
.withDescription(scheduleJob.getJobDescription()).build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(scheduleJob.getTriggerName(), scheduleJob.getTriggerGroupName())
.withDescription(scheduleJob.getTriggerDescription())
.withSchedule(CronScheduleBuilder.cronSchedule(scheduleJob.getTriggerCronExpression())).startNow()
.build();
scheduler.scheduleJob(jobDetail, trigger);
}
}
示例6: persistTrigger
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
/**
* Persist the trigger in the Quartz scheduler.
*/
private VmSchedule persistTrigger(final VmSchedule schedule) throws SchedulerException {
// The trigger for the common VM Job will the following convention :
// schedule.id-subscription.id
final String id = VmJob.format(schedule);
final JobDetailImpl object = (JobDetailImpl) vmJobDetailFactoryBean.getObject();
object.getJobDataMap().put("vmServicePlugin", this);
final Trigger trigger = TriggerBuilder.newTrigger().withIdentity(id, SCHEDULE_TRIGGER_GROUP)
.withSchedule(CronScheduleBuilder.cronSchedule(schedule.getCron()).inTimeZone(DateUtils.getApplicationTimeZone()))
.forJob(object).usingJobData("subscription", schedule.getSubscription().getId())
.usingJobData("operation", schedule.getOperation().name()).usingJobData("schedule", schedule.getId()).build();
// Add this trigger
vmSchedulerFactoryBean.getObject().scheduleJob(trigger);
return schedule;
}
示例7: getScheduleBuilder
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
/**
* Get a {@link ScheduleBuilder} that is configured to produce a
* schedule identical to this trigger's schedule.
*
* @see #getTriggerBuilder()
*/
@Override
public ScheduleBuilder<CronTrigger> getScheduleBuilder() {
CronScheduleBuilder cb = CronScheduleBuilder.cronSchedule(getCronExpression())
.inTimeZone(getTimeZone());
switch(getMisfireInstruction()) {
case MISFIRE_INSTRUCTION_DO_NOTHING : cb.withMisfireHandlingInstructionDoNothing();
break;
case MISFIRE_INSTRUCTION_FIRE_ONCE_NOW : cb.withMisfireHandlingInstructionFireAndProceed();
break;
}
return cb;
}
示例8: addJobTrigger
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
@Transactional
@Override
public boolean addJobTrigger(ScheduleJobEntity job) {
try {
Scheduler scheduler = schedulerFactoryBean.getScheduler();
// 表达式调度构建器
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder
.cronSchedule(job.getCronExpression());
// 按新的cronExpression表达式构建一个新的trigger
CronTrigger trigger = newTrigger()
.forJob(job.getJobKey()) //绑定job
.withIdentity(job.getTriggerKey())
.startAt(job.getStartDate()) // job开始日期
.endAt(job.getEndDate())// job结束日期
.withSchedule(scheduleBuilder).build();
// 将trigger添加到quartz的scheduler容器
scheduler.scheduleJob(trigger);
return Boolean.TRUE;
} catch (SchedulerException e) {
throw new ServiceException(e);
}
}
示例9: serverTasks
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
public serverTasks() throws SchedulerException, ParseException{
/*
* 循环式的
*/
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
//设置启动时间
DateBuilder.evenMinuteDate(new Date());
JobDetail job = JobBuilder.newJob(job.class).withIdentity("job1", "group1").build();
//job.getJobDataMap().put("a", true);//实现传参
// @NOTICE
// 与SimpleTrigger对比:类不同了,现在的是Trigger的子类CronTrigger;withSchedule中的参数变为CronScheduleBuilder了
// CronScheduleBuilder可以通过类似"0/13 * * * * ?"这种表达式来创建定时任务
// 当前这个表达式的定义是30分钟执行一次
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("1 0/30 * * * ?")).build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
//scheduler.shutdown(true);
}
示例10: convert
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
@Override
public Trigger convert(Cron trigger) {
CronScheduleBuilder schedule = cronSchedule(trigger.getCronExpression());
if (trigger.getMisfireInstruction() == Cron.MisfireInstruction.DROP) {
schedule.withMisfireHandlingInstructionDoNothing();
} else if (trigger.getMisfireInstruction() == Cron.MisfireInstruction.FIRE_ONCE) {
schedule.withMisfireHandlingInstructionFireAndProceed();
}
return newTrigger()
.forJob(trigger.getJobKey().getName(), trigger.getJobKey().getGroup())
.withDescription(trigger.getDescription())
.withIdentity(trigger.getTriggerKey().getName(), trigger.getTriggerKey().getGroup())
.withSchedule(schedule)
.usingJobData(new JobDataMap(trigger.getTriggerData()))
.build();
}
示例11: addJob
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
private void addJob(ScheduleJob scheduleJob) throws Exception{
checkNotNull(scheduleJob);
Preconditions.checkNotNull(StringUtils.isEmpty(scheduleJob.getCronExpression()), "CronExpression is null");
TriggerKey triggerKey = TriggerKey.triggerKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
if(trigger != null){
throw new Exception("job already exists!");
}
// simulate job info db persist operation
scheduleJob.setJobId(String.valueOf(QuartzJobFactory.jobList.size()+1));
QuartzJobFactory.jobList.add(scheduleJob);
JobDetail jobDetail = JobBuilder.newJob(QuartzJobFactory.class).withIdentity(scheduleJob.getJobName(),scheduleJob.getJobGroup()).build();
jobDetail.getJobDataMap().put("scheduleJob", scheduleJob);
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression());
trigger = TriggerBuilder.newTrigger().withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).withSchedule(cronScheduleBuilder).build();
scheduler.scheduleJob(jobDetail, trigger);
}
示例12: prvateAddQuartz
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
private boolean prvateAddQuartz(Class<? extends Job> jobClass,JobKey jobKey, CronScheduleBuilder builder, SimpleScheduleBuilder repeatForever) {
if(scheduler==null){
init();
}
//创建一个任务计划生成器 设置任务名称与分组 创建任务计划
JobDetail job = JobBuilder.newJob(jobClass).withIdentity(jobKey).build();
//创建一个触发生成器 设置触发器名称与分组 设置触发器出发条件 创建触发器
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(jobKey.getName(),jobKey.getGroup()).withSchedule(builder==null?repeatForever:builder).build();
try {
scheduler.scheduleJob(job, trigger);
outLog("添加任务计划成功!");
return true;
} catch (SchedulerException e) {
outLog("添加任务计划失败!");
}
return false;
}
示例13: createScheduleJob
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
/**
* 创建定时任务
*/
public static void createScheduleJob(Scheduler scheduler, ScheduleJobEntity scheduleJob) {
try {
//构建job信息
JobDetail jobDetail = JobBuilder.newJob(ScheduleJob.class).withIdentity(getJobKey(scheduleJob.getJobId())).build();
//表达式调度构建器
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression())
.withMisfireHandlingInstructionDoNothing();
//按新的cronExpression表达式构建一个新的trigger
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(scheduleJob.getJobId())).withSchedule(scheduleBuilder).build();
//放入参数,运行时的方法可以获取
jobDetail.getJobDataMap().put(ScheduleJobEntity.JOB_PARAM_KEY, new Gson().toJson(scheduleJob));
scheduler.scheduleJob(jobDetail, trigger);
//暂停任务
if(scheduleJob.getStatus() == ScheduleStatus.PAUSE.getValue()){
pauseJob(scheduler, scheduleJob.getJobId());
}
} catch (SchedulerException e) {
throw new RRException("创建定时任务失败", e);
}
}
示例14: createScheduleJob
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
/**
* 创建定时任务
*/
public static void createScheduleJob(Scheduler scheduler, ScheduleJobEntity scheduleJob) {
try {
//构建job信息
JobDetail jobDetail = JobBuilder.newJob(ScheduleJob.class).withIdentity(getJobKey(scheduleJob.getJobId())).build();
//表达式调度构建器
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression());
//按新的cronExpression表达式构建一个新的trigger
CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(scheduleJob.getJobId())).withSchedule(scheduleBuilder).build();
//放入参数,运行时的方法可以获取
jobDetail.getJobDataMap().put(ScheduleJobEntity.JOB_PARAM_KEY, scheduleJob);
scheduler.scheduleJob(jobDetail, trigger);
//暂停任务
if(scheduleJob.getStatus() == ScheduleStatus.PAUSE.getValue()){
pauseJob(scheduler, scheduleJob.getJobId());
}
} catch (SchedulerException e) {
throw new RRException("创建定时任务失败", e);
}
}
示例15: start
import org.quartz.CronScheduleBuilder; //导入依赖的package包/类
public void start(final AbstractNotifier notifier) {
// if no interval is defined then don't start the notifier
if (StringUtils.isNotBlank(notifier.getCronExpression())) {
try {
final JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put(NotifierJob.JOB_DATA_KEY_NOTIFIER, notifier);
final JobDetail jobDetail = JobBuilder.newJob(NotifierJob.class).setJobData(jobDataMap)
.withIdentity("Job-" + notifier.getName()).build();
final CronScheduleBuilder cronSchedule = CronScheduleBuilder.cronSchedule(notifier.getCronExpression())
.inTimeZone(TimeZone.getTimeZone("UTC"));
final Trigger trigger = TriggerBuilder.newTrigger().withIdentity("Trigger-" + notifier.getName())
.withSchedule(cronSchedule).forJob(jobDetail).build();
scheduler.scheduleJob(jobDetail, trigger);
} catch (final SchedulerException e) {
logger.error("Error scheduling notifier to start {}", notifier.getName(), e);
}
}
}