类org.quartz.SimpleScheduleBuilder源码实例Demo

下面列出了怎么用org.quartz.SimpleScheduleBuilder的API类实例代码及写法,或者点击链接到github查看源代码。

private SimpleScheduleBuilder handleSimpleScheduleMisfirePolicy(TaskInfo.TriggerInfo triggerInfo,
                                                                SimpleScheduleBuilder sb) throws TaskException {
    switch (triggerInfo.getMisfirePolicy()) {
    case DEFAULT:
        return sb;
    case FIRE_NOW:
        return sb.withMisfireHandlingInstructionFireNow();
    case IGNORE_MISFIRES:
        return sb.withMisfireHandlingInstructionIgnoreMisfires();
    case NEXT_WITH_EXISTING_COUNT:
        return sb.withMisfireHandlingInstructionNextWithExistingCount();
    case NEXT_WITH_REMAINING_COUNT:
        return sb.withMisfireHandlingInstructionNextWithRemainingCount();
    case NOW_WITH_EXISTING_COUNT:
        return sb.withMisfireHandlingInstructionNowWithExistingCount();
    case NOW_WITH_REMAINING_COUNT:
        return sb.withMisfireHandlingInstructionNowWithRemainingCount();
    default:
        throw new TaskException("The task misfire policy '" + triggerInfo.getMisfirePolicy()
                                        + "' cannot be used in simple schedule tasks",
                                TaskException.Code.CONFIG_ERROR);
    }
}
 
源代码2 项目: WeCross   文件: HTLCTaskFactory.java
@Override
public List<Task> load(Object... args) {
    @SuppressWarnings("unchecked")
    List<HTLCResourcePair> htlcResourcePairs = (List<HTLCResourcePair>) args[0];
    List<Task> tasks = new ArrayList<>();
    int num = htlcResourcePairs.size();
    for (int i = 0; i < num; i++) {
        HTLCResourcePair htlcResourcePair = htlcResourcePairs.get(i);
        logger.debug("HTLCResourcePair: {}", htlcResourcePair.toString());

        String jobName = htlcResourcePair.getSelfHTLCResource().getSelfPath().toString();
        JobDetail jobDetail = loadHTLCJobDetail(jobName, "HTLC", htlcResourcePair);

        // execute per 2 seconds
        Trigger trigger =
                TriggerBuilder.newTrigger()
                        .withIdentity(jobName, Scheduler.DEFAULT_GROUP)
                        .withSchedule(
                                SimpleScheduleBuilder.simpleSchedule()
                                        .withIntervalInSeconds(2)
                                        .repeatForever())
                        .build();
        tasks.add(new Task(trigger, jobDetail));
    }
    return tasks;
}
 
@Test
void testDirectoryScan() throws SchedulerException, IOException {
    Path directoryScanTest = Files.createTempDirectory("DirectoryScanTest");

    Trigger trigger = TriggerBuilder
        .newTrigger()
        .withIdentity("myTrigger")
        .withSchedule(
            SimpleScheduleBuilder.repeatSecondlyForTotalCount(1, 1))
        .build();
    final JobDetail job = JobBuilder.newJob(DirectoryScanJob.class)
        .withIdentity("dummyJobName")
        .usingJobData(DirectoryScanJob.DIRECTORY_NAME, directoryScanTest.toAbsolutePath().toString())
        .usingJobData(DirectoryScanJob.DIRECTORY_SCAN_LISTENER_NAME, TestDirectoryScanListener.class.getSimpleName())
        .build();

    scheduler.getContext().put(TestDirectoryScanListener.class.getSimpleName(), new TestDirectoryScanListener());
    scheduler.scheduleJob(job, trigger);
    verifyJobDetails(job);
}
 
源代码4 项目: Summer   文件: TaskUtil.java
public static TaskTrigger getIntervalTask(long interval, long delay, Class<? extends Job> jobClass) {
	JobDetail job = JobBuilder.newJob(jobClass).withIdentity(jobClass.getName()).build();
	Trigger trigger;
	if (delay > 0) {
		trigger = TriggerBuilder.newTrigger()
				.withIdentity(jobClass.getName())
				.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever())
				.startAt(new Date(System.currentTimeMillis() + delay)).build();
	} else {
		trigger = TriggerBuilder.newTrigger()
				.withIdentity(jobClass.getName())
				.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever())
				.startNow().build();
	}
	return new TaskTrigger(job, trigger);
}
 
源代码5 项目: Summer   文件: TaskUtil.java
public static TaskTrigger getIntervalTask(long interval, long delay, String taskName, TaskJob taskJob) {
	JobDetail job = JobBuilder.newJob(TaskObjJob.class).withIdentity(taskName).build();
	Trigger trigger;
	if (delay > 0) {
		trigger = TriggerBuilder.newTrigger()
				.withIdentity(taskName)
				.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever())
				.startAt(new Date(System.currentTimeMillis() + delay)).build();
	} else {
		trigger = TriggerBuilder.newTrigger()
				.withIdentity(taskName)
				.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever())
				.startNow().build();
	}
	TaskObjJob.bindTriggerWithObj(trigger, taskJob);
	return new TaskTrigger(job, trigger);
}
 
源代码6 项目: Summer   文件: TaskUtil.java
public static TaskTrigger getIntervalTask(long interval, long delay, MethodInvoke methodInvoke) {
	JobDetail job = JobBuilder.newJob(TaskMethodJob.class).withIdentity(methodInvoke.getMethod().getName(), methodInvoke.getObj().getClass().getName()).build();
	Trigger trigger;
	if (delay > 0) {
		trigger = TriggerBuilder.newTrigger()
				.withIdentity(methodInvoke.getMethod().getName(), methodInvoke.getObj().getClass().getName())
				.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever())
				.startAt(new Date(System.currentTimeMillis() + delay)).build();
	} else {
		trigger = TriggerBuilder.newTrigger()
				.withIdentity(methodInvoke.getMethod().getName(), methodInvoke.getObj().getClass().getName())
				.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever())
				.startNow().build();
	}
	TaskMethodJob.bindTriggerWithMethod(trigger, methodInvoke);
	return new TaskTrigger(job, trigger);
}
 
/**
 * Refresh metadata. Schedules the job to retrieve metadata.
 * @throws SchedulerException the scheduler exception
 */
@PostConstruct
public void refreshMetadata() throws SchedulerException {
    final Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            buildMetadataResolverAggregate();
        }
    });
    thread.start();

    final JobDetail job = JobBuilder.newJob(this.getClass())
            .withIdentity(this.getClass().getSimpleName()).build();
    final Trigger trigger = TriggerBuilder.newTrigger()
            .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                    .withIntervalInMinutes(this.refreshIntervalInMinutes)
                    .repeatForever()).build();

    final SchedulerFactory schFactory = new StdSchedulerFactory();
    final Scheduler sch = schFactory.getScheduler();
    sch.start();
    sch.scheduleJob(job, trigger);
}
 
源代码8 项目: lams   文件: SimpleTriggerImpl.java
/**
 * Get a {@link ScheduleBuilder} that is configured to produce a 
 * schedule identical to this trigger's schedule.
 * 
 * @see #getTriggerBuilder()
 */
@Override
public ScheduleBuilder<SimpleTrigger> getScheduleBuilder() {
    
    SimpleScheduleBuilder sb = SimpleScheduleBuilder.simpleSchedule()
    .withIntervalInMilliseconds(getRepeatInterval())
    .withRepeatCount(getRepeatCount());
    
    switch(getMisfireInstruction()) {
        case MISFIRE_INSTRUCTION_FIRE_NOW : sb.withMisfireHandlingInstructionFireNow();
        break;
        case MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT : sb.withMisfireHandlingInstructionNextWithExistingCount();
        break;
        case MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT : sb.withMisfireHandlingInstructionNextWithRemainingCount();
        break;
        case MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT : sb.withMisfireHandlingInstructionNowWithExistingCount();
        break;
        case MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT : sb.withMisfireHandlingInstructionNowWithRemainingCount();
        break;
    }
    
    return sb;
}
 
源代码9 项目: Eagle   文件: ExternalDataJoiner.java
public void start(){
	// for job
	JobDetail job = JobBuilder.newJob(jobCls) 
	     .withIdentity(jobCls.getName() + ".job", QUARTZ_GROUP_NAME)
	     .setJobData(jobDataMap)
	     .build();
	
	// for trigger
	Object interval = jobDataMap.get(DATA_JOIN_POLL_INTERVALSEC);
	Trigger trigger = TriggerBuilder.newTrigger() 
		  .withIdentity(jobCls.getName() + ".trigger", QUARTZ_GROUP_NAME) 
	      .startNow() 
	      .withSchedule(SimpleScheduleBuilder.simpleSchedule() 
	          .withIntervalInSeconds(interval == null ? defaultIntervalSeconds : ((Integer)interval).intValue()) 
	          .repeatForever()) 
	      .build(); 
	try{
		sched.scheduleJob(job, trigger);
	}catch(Exception ex){
		LOG.error("Can't schedule job " + job.getDescription(), ex);
	}
}
 
源代码10 项目: mangooio   文件: SchedulerUtils.java
/**
 * Creates a new quartz scheduler Trigger, which can be used to
 * schedule a new job by passing it into {@link io.mangoo.scheduler.Scheduler#schedule(JobDetail, Trigger) schedule}
 *
 * @param identity The name of the trigger
 * @param groupName The trigger group name
 * @param description The trigger description
 * @param timespan The timespan for the trigger
 * @param timeUnit The timeUnit for the trigger
 *
 * @return A new Trigger object
 */
public static Trigger createTrigger(String identity, String groupName, String description, int timespan, TimeUnit timeUnit) {
    Objects.requireNonNull(identity, Required.IDENTITY.toString());
    Objects.requireNonNull(groupName, Required.GROUP_NAME.toString());
    Objects.requireNonNull(timespan, Required.TIMEPSAN.toString());
    Objects.requireNonNull(timeUnit, Required.TIMEUNIT.toString());
    
    TriggerBuilder<Trigger> triggerBuilder = newTrigger()
            .withDescription(description)
            .withIdentity(identity, groupName);
    
    if (timeUnit == TimeUnit.SECONDS) {
        triggerBuilder.withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(timespan));
    } else if (timeUnit == TimeUnit.MINUTES) {
        triggerBuilder.withSchedule(SimpleScheduleBuilder.repeatMinutelyForever(timespan));
    } else if (timeUnit == TimeUnit.HOURS) {
        triggerBuilder.withSchedule(SimpleScheduleBuilder.repeatHourlyForever(timespan));
    } else if (timeUnit == TimeUnit.DAYS) {
        triggerBuilder.withSchedule(SimpleScheduleBuilder.repeatHourlyForever(timespan * TWENTYFOUR_HORS));
    } else {
        //do nothing
    }

    return triggerBuilder.build();
}
 
@Test
public void serialization(){
    SimpleTrigger trigger = TriggerBuilder.newTrigger()
            .forJob("testJob", "testGroup")
            .withIdentity("testTrigger", "testTriggerGroup")
            .usingJobData("timeout", 5)
            .withDescription("A description!")
            .withSchedule(SimpleScheduleBuilder.repeatHourlyForever())
            .build();

    Map<String, String> triggerMap = mapper.convertValue(trigger, new TypeReference<HashMap<String, String>>() {});

    assertThat(triggerMap, hasKey("name"));
    assertEquals("testTrigger", triggerMap.get("name"));
    assertThat(triggerMap, hasKey("group"));
    assertEquals("testTriggerGroup", triggerMap.get("group"));
    assertThat(triggerMap, hasKey("jobName"));
    assertEquals("testJob", triggerMap.get("jobName"));

    SimpleTriggerImpl simpleTrigger = mapper.convertValue(triggerMap, SimpleTriggerImpl.class);

    assertEquals(trigger.getKey().getName(), simpleTrigger.getKey().getName());
    assertEquals(trigger.getKey().getGroup(), simpleTrigger.getKey().getGroup());
    assertEquals(trigger.getStartTime(), simpleTrigger.getStartTime());
    assertEquals(trigger.getRepeatInterval(), simpleTrigger.getRepeatInterval());
}
 
源代码12 项目: quartz-glass   文件: SimpleTriggerForm.java
public Trigger getTrigger(Trigger trigger) throws ParseException {
    fixParameters();

    TriggerBuilder<Trigger> builder = TriggerBuilder.newTrigger().forJob(trigger.getJobKey().getName(), trigger.getJobKey().getGroup())
            .withIdentity(trigger.getKey().getName(), trigger.getKey().getGroup())
            .startAt(startTime).endAt(endTime)
            .usingJobData(JobDataMapUtils.fromDataMapStr(dataMap));

    if (repeatCount == -1) {
        builder.withSchedule(SimpleScheduleBuilder.simpleSchedule().repeatForever()
                .withIntervalInMilliseconds(intervalInMilliseconds));
    } else {
        builder.withSchedule(SimpleScheduleBuilder.simpleSchedule().withRepeatCount(repeatCount)
                .withIntervalInMilliseconds(intervalInMilliseconds));
    }

    return builder.build();
}
 
源代码13 项目: quartz-glass   文件: NewSimpleTriggerForm.java
public Trigger getTrigger() throws ParseException {
    fixParameters();

    TriggerBuilder<Trigger> builder = TriggerBuilder.newTrigger().forJob(name.trim(), group.trim()).withIdentity(triggerName.trim(), triggerGroup.trim())
            .startAt(startTime).endAt(endTime)
            .usingJobData(JobDataMapUtils.fromDataMapStr(dataMap));

    if (repeatCount == -1) {
        builder.withSchedule(SimpleScheduleBuilder.simpleSchedule().repeatForever()
                .withIntervalInMilliseconds(intervalInMilliseconds));
    } else {
        builder.withSchedule(SimpleScheduleBuilder.simpleSchedule().withRepeatCount(repeatCount)
                .withIntervalInMilliseconds(intervalInMilliseconds));
    }

    return builder.build();
}
 
private SimpleScheduleBuilder getSimpleScheduleBuilder(TaskInfo.TriggerInfo triggerInfo) throws TaskException {
    SimpleScheduleBuilder scheduleBuilder = null;
    if (triggerInfo.getRepeatCount() == -1) {
        scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().repeatForever();
    } else if (triggerInfo.getRepeatCount() > 0) {
        scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withRepeatCount(triggerInfo.getRepeatCount());
    }
    if (scheduleBuilder != null) {
        scheduleBuilder = scheduleBuilder.withIntervalInMilliseconds(triggerInfo.getIntervalMillis());
        scheduleBuilder = this.handleSimpleScheduleMisfirePolicy(triggerInfo, scheduleBuilder);
    }
    return scheduleBuilder;
}
 
@Test
void testJobWithGroup() throws SchedulerException {
    JobDetail job = JobBuilder.newJob(TestJob.class)
        .withIdentity("dummyJobName", "group1").build();
    Trigger trigger = TriggerBuilder
        .newTrigger()
        .withIdentity("myTrigger")
        .withSchedule(
            SimpleScheduleBuilder.repeatSecondlyForTotalCount(1, 1))
        .build();
    scheduler.scheduleJob(job, trigger);
    verifyJobDetails(job);
}
 
@Test
void testJobWithoutGroup() throws SchedulerException {
    JobDetail job = JobBuilder.newJob(TestJob.class)
        .withIdentity("dummyJobName").build();
    Trigger trigger = TriggerBuilder
        .newTrigger()
        .withIdentity("myTrigger")
        .withSchedule(
            SimpleScheduleBuilder.repeatSecondlyForTotalCount(1, 1))
        .build();
    scheduler.scheduleJob(job, trigger);
    verifyJobDetails(job);
}
 
@Test
void testSpringJob() throws SchedulerException {
    JobDetail job = JobBuilder.newJob(TestSpringJob.class)
        .withIdentity("dummyJobName", "group1").build();
    Trigger trigger = TriggerBuilder
        .newTrigger()
        .withIdentity("myTrigger")
        .withSchedule(
            SimpleScheduleBuilder.repeatSecondlyForTotalCount(1, 1))
        .build();
    scheduler.scheduleJob(job, trigger);
    verifyJobDetails(job);
}
 
@Test
void testJobWithResult() throws SchedulerException {
    JobDetail job = JobBuilder.newJob(TestJobWithResult.class)
        .withIdentity("dummyJobName").build();
    Trigger trigger = TriggerBuilder
        .newTrigger()
        .withIdentity("myTrigger")
        .withSchedule(
            SimpleScheduleBuilder.repeatSecondlyForTotalCount(1, 1))
        .build();
    scheduler.scheduleJob(job, trigger);
    verifyJobDetails(job);
    assertThat(reporter.getTransactions().get(0).getResult()).isEqualTo("this is the result");
}
 
源代码19 项目: springbootexamples   文件: SimpleJobConfig.java
@Bean
public Trigger simpleJobTrigger() {
	//定义每三秒执行一次
	SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3).repeatForever();
	//定义触发器
	return TriggerBuilder.newTrigger().forJob(simpleJobDetail()).withIdentity("myJobTrigger").withSchedule(simpleScheduleBuilder).build();
}
 
源代码20 项目: quarkus   文件: ManualScheduledCounter.java
@Transactional
@PostConstruct
void init() throws SchedulerException {
    JobDetail job = JobBuilder.newJob(CountingJob.class).build();
    Trigger trigger = TriggerBuilder
            .newTrigger()
            .startNow()
            .withSchedule(SimpleScheduleBuilder
                    .simpleSchedule()
                    .withIntervalInSeconds(1))
            .build();
    quartz.scheduleJob(job, trigger);
}
 
源代码21 项目: quarkus   文件: InjectQuartzSchedulerTest.java
void onStart(@Observes StartupEvent event, Scheduler quartz) throws SchedulerException {
    JobDetail job = JobBuilder.newJob(Starter.class)
            .withIdentity("myJob", "myGroup")
            .build();
    Trigger trigger = TriggerBuilder.newTrigger()
            .withIdentity("myTrigger", "myGroup")
            .startNow()
            .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                    .withIntervalInSeconds(1)
                    .repeatForever())
            .build();
    quartz.scheduleJob(job, trigger);
}
 
源代码22 项目: o2oa   文件: Context.java
public <T extends AbstractJob> void scheduleLocal(Class<T> cls, Integer delay, Integer interval) throws Exception {
	JobDataMap jobDataMap = new JobDataMap();
	jobDataMap.put("context", this);
	JobDetail jobDetail = JobBuilder.newJob(cls).withIdentity(cls.getName(), clazz.getName())
			.usingJobData(jobDataMap).withDescription(Config.node()).build();
	Trigger trigger = TriggerBuilder.newTrigger().withIdentity(cls.getName(), clazz.getName())
			.withDescription("scheduleLocal").startAt(DateBuilder.futureDate(delay, IntervalUnit.SECOND))
			.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(interval).repeatForever())
			.build();
	scheduler.scheduleJob(jobDetail, trigger);
	this.scheduleLocalRequestList.add(new ScheduleLocalRequest(jobDetail, null, delay, interval));
}
 
源代码23 项目: o2oa   文件: Context.java
public <T extends AbstractJob> void fireScheduleOnLocal(Class<T> cls, Integer delay) throws Exception {
	/* 需要单独生成一个独立任务,保证group和预约的任务不重复 */
	JobDataMap jobDataMap = new JobDataMap();
	jobDataMap.put("context", this);
	JobDetail jobDetail = JobBuilder.newJob(cls).withIdentity(cls.getName(), clazz.getName())
			.usingJobData(jobDataMap).withDescription(Config.node()).build();
	/* 经过测试0代表不重复,仅运行一次 */
	Trigger trigger = TriggerBuilder.newTrigger().withIdentity(cls.getName(), clazz.getName())
			.withDescription("schedule").startAt(DateBuilder.futureDate(delay, IntervalUnit.SECOND))
			.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).withRepeatCount(0))
			.build();
	scheduler.scheduleJob(jobDetail, trigger);
}
 
源代码24 项目: o2oa   文件: Context.java
public <T extends AbstractJob> void scheduleLocal(Class<T> cls, Integer delay) throws Exception {
	/* 需要单独生成一个独立任务,保证group和预约的任务不重复 */
	JobDataMap jobDataMap = new JobDataMap();
	jobDataMap.put("context", this);
	JobDetail jobDetail = JobBuilder.newJob(cls).withIdentity(cls.getName(), clazz.getName())
			.usingJobData(jobDataMap).withDescription(Config.node()).build();
	/* 经过测试0代表不重复,仅运行一次 */
	Trigger trigger = TriggerBuilder.newTrigger().withIdentity(cls.getName(), clazz.getName())
			.withDescription("scheduleLocal").startAt(DateBuilder.futureDate(delay, IntervalUnit.SECOND))
			.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).withRepeatCount(0))
			.build();
	scheduler.scheduleJob(jobDetail, trigger);
}
 
源代码25 项目: o2oa   文件: Context.java
public <T extends Job> void scheduleLocal(Class<T> cls, Integer delay, Integer interval) throws Exception {
	JobDetail jobDetail = JobBuilder.newJob(cls).withIdentity(cls.getName(), clazz.getName())
			.withDescription(Config.node()).build();
	Trigger trigger = TriggerBuilder.newTrigger().withIdentity(cls.getName(), clazz.getName())
			.withDescription("scheduleLocal").startAt(DateBuilder.futureDate(delay, IntervalUnit.SECOND))
			.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(interval).repeatForever())
			.build();
	scheduler.scheduleJob(jobDetail, trigger);
}
 
源代码26 项目: o2oa   文件: Context.java
public <T extends Job> void scheduleLocal(Class<T> cls) throws Exception {
	/* 需要单独生成一个独立任务,保证group和预约的任务不重复 */
	String group = StringTools.uniqueToken();
	JobDetail jobDetail = JobBuilder.newJob(cls).withIdentity(cls.getName(), group).withDescription(Config.node())
			.build();
	/* 经过测试0代表不重复,进运行一次 */
	Trigger trigger = TriggerBuilder.newTrigger().withIdentity(cls.getName(), group)
			.withDescription("scheduleLocal")
			.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(1).withRepeatCount(0))
			.build();
	scheduler.scheduleJob(jobDetail, trigger);
}
 
源代码27 项目: alfresco-repository   文件: RepoUsageMonitor.java
/**
 * Check that all properties are properly set
 */
public void init() throws SchedulerException
{
    PropertyCheck.mandatory(this, "scheduler", scheduler);
    PropertyCheck.mandatory(this, "transactionService", transactionService);
    PropertyCheck.mandatory(this, "repoUsageComponent", repoUsageComponent);
    PropertyCheck.mandatory(this, "jobLockService", jobLockService);

    // Trigger the scheduled updates
    JobDataMap jobDataMap = new JobDataMap();
    jobDataMap.put("RepoUsageMonitor", this);
    final JobDetail jobDetail = JobBuilder.newJob()
            .withIdentity("rmj")
            .usingJobData(jobDataMap)
            .ofType(RepoUsageMonitorJob.class)
            .build();

    final Trigger trigger = TriggerBuilder.newTrigger()
            .withIdentity("rmt")
            .withSchedule(SimpleScheduleBuilder.repeatHourlyForever().withIntervalInHours(12))
            .startAt(new Date(System.currentTimeMillis() + 60L * 60L * 1000L))
            .build();

    repoUsageComponent.observeRestrictions(this);
    
    // Unschedule in case it was scheduled in an earlier retry of the transaction
    scheduler.unscheduleJob(trigger.getKey());
    scheduler.scheduleJob(jobDetail, trigger);
}
 
源代码28 项目: lams   文件: SimpleTriggerPersistenceDelegate.java
public TriggerPropertyBundle loadExtendedTriggerProperties(Connection conn, TriggerKey triggerKey) throws SQLException {

        PreparedStatement ps = null;
        ResultSet rs = null;
        
        try {
            ps = conn.prepareStatement(Util.rtp(SELECT_SIMPLE_TRIGGER, tablePrefix, schedNameLiteral));
            ps.setString(1, triggerKey.getName());
            ps.setString(2, triggerKey.getGroup());
            rs = ps.executeQuery();
    
            if (rs.next()) {
                int repeatCount = rs.getInt(COL_REPEAT_COUNT);
                long repeatInterval = rs.getLong(COL_REPEAT_INTERVAL);
                int timesTriggered = rs.getInt(COL_TIMES_TRIGGERED);

                SimpleScheduleBuilder sb = SimpleScheduleBuilder.simpleSchedule()
                    .withRepeatCount(repeatCount)
                    .withIntervalInMilliseconds(repeatInterval);
                
                String[] statePropertyNames = { "timesTriggered" };
                Object[] statePropertyValues = { timesTriggered };
                
                return new TriggerPropertyBundle(sb, statePropertyNames, statePropertyValues);
            }
            
            throw new IllegalStateException("No record found for selection of Trigger with key: '" + triggerKey + "' and statement: " + Util.rtp(SELECT_SIMPLE_TRIGGER, tablePrefix, schedNameLiteral));
        } finally {
            Util.closeResultSet(rs);
            Util.closeStatement(ps);
        }
    }
 
源代码29 项目: sunbird-lms-service   文件: SchedulerManager.java
public static void scheduleChannelReg(String identifier) {
  // add another job for registering channel to ekstep.
  // 1- create a job and bind with class which is implementing Job
  // interface.
  JobDetail channelRegistrationJob =
      JobBuilder.newJob(ChannelRegistrationScheduler.class)
          .requestRecovery(true)
          .withDescription("Scheduler for channel registration")
          .withIdentity("channelRegistrationScheduler", identifier)
          .build();

  // 2- Create a trigger object that will define frequency of run.
  // It will run only once after server startup
  Trigger channelRegistrationTrigger =
      TriggerBuilder.newTrigger()
          .withIdentity("channelRegistrationScheduler", identifier)
          .withSchedule(SimpleScheduleBuilder.repeatMinutelyForTotalCount(1))
          .build();
  try {
    if (scheduler.checkExists(channelRegistrationJob.getKey())) {
      scheduler.deleteJob(channelRegistrationJob.getKey());
    }
    scheduler.scheduleJob(channelRegistrationJob, channelRegistrationTrigger);
    scheduler.start();
    ProjectLogger.log(
        "SchedulerManager:scheduleChannelReg: channelRegistration schedular started",
        LoggerEnum.INFO.name());
  } catch (Exception e) {
    ProjectLogger.log(e.getMessage(), e);
  }
}
 
源代码30 项目: quartz-manager   文件: SchedulerController.java
@PostMapping("/config")
public SchedulerConfigParam postConfig(@RequestBody SchedulerConfigParam config) throws SchedulerException {
	log.info("SCHEDULER - NEW CONFIG {}", config);
	SimpleTrigger trigger = (SimpleTrigger) triggerMonitor.getTrigger();

	TriggerBuilder<SimpleTrigger> triggerBuilder = trigger.getTriggerBuilder();

	int intervalInMills = fromTriggerPerDayToMillsInterval(config.getTriggerPerDay());
	Trigger newTrigger = triggerBuilder.withSchedule(SimpleScheduleBuilder.simpleSchedule()
			.withIntervalInMilliseconds(intervalInMills).withRepeatCount(config.getMaxCount() - 1)).build();

	scheduler.rescheduleJob(triggerMonitor.getTrigger().getKey(), newTrigger);
	triggerMonitor.setTrigger(newTrigger);
	return config;
}
 
 类所在包
 同包方法