void start() { if (enable) { scheduler.start(); } }
void schedule() { if (enable) { scheduler = new Scheduler(); if (task instanceof Runnable) { scheduler.schedule(cron, (Runnable) task); } else if (task instanceof Task) { scheduler.schedule(cron, (Task) task); } else { scheduler = null; throw new IllegalStateException("Task 必须是 Runnable、ITask、ProcessTask 或者 Task 类型"); } scheduler.setDaemon(daemon); } }
void stop() { if (enable) { if (task instanceof ITask) { // 如果任务实现了 ITask 接口,则回调 ITask.stop() 方法 ((ITask)task).stop(); } scheduler.stop(); } } }
private void startScheduler() { s = new Scheduler(); s.setDaemon(true); s.addTaskCollector(this); s.start(); masterScheduler = true; jqmlogger.info("Scheduler (cron) has started"); }
/** * Refreshes the job schedule with the current list of enabled jobs of the type to be scheduled. * * @param scheduler The scheduler to update. * * @return The updated scheduler. */ protected Scheduler _refreshJobSchedule(Scheduler scheduler) { _disposeScheduler(scheduler); Scheduler result = new Scheduler(); _logger.info("Refreshing job schedule."); for (CronJob job : getEnabledJobs()) { _logger.debug("Adding job to scheduler: {}", job); try { result.schedule(job.getCronEntry(), new RunnableJob(lockType, job)); } catch (Exception ex) { String msg = "Failed to schedule job {0} : {1}"; JPAEntity entity = JPAEntity.class.cast(job); _auditService.createAudit(msg, entity, entity, ex.getMessage()); _logger.error("Failed to schedule job {} : {}", job, ex.getMessage()); } } result.start(); _logger.info("Job schedule refreshed."); return result; }
@Override public void work(Object message, Engine processEngine) { synchronized (this) { if ("STOP".equals(message)) { if (scheduler != null) { scheduler.stop(); scheduler = null; } } else if (scheduler == null) { scheduler = new Scheduler(); scheduler.schedule(schedulingPattern, new Runnable() { @Override public void run() { ProcessEngine.handle(channel, "Cron"); } }); scheduler.start(); } } } }
@PostConstruct public void startup() throws Exception { logger.info("starting scheduler..."); scheduledFuture = Executors.newScheduledThreadPool(1).scheduleWithFixedDelay(this, 0, 10, TimeUnit.SECONDS); Preconditions.checkNotNull(taskCollector); scheduler.addTaskCollector(taskCollector); scheduler.setDaemon(true); scheduler.addSchedulerListener(new MacGyverScheduleListener()); scheduler.start(); scheduler.schedule(OrphanedTaskCleanup.CRON, taskStateManager.new OrphanedTaskCleanup()); scheduler.schedule(AgingTaskCleanup.CRON, taskStateManager.new AgingTaskCleanup()); }
@Override public void init() { scheduler.addTaskCollector(this); scheduler.start(); }
@Override public Scheduler getScheduler() { return new Scheduler(); }
/** * 加入定时任务 * @param schedulingPattern 定时任务执行时间的crontab表达式 * @param task 任务 * @return 定时任务ID */ public static String schedule(String schedulingPattern, Task task) { return scheduler.schedule(schedulingPattern, task); }
private void startScheduler() { s = new Scheduler(); s.setDaemon(true); s.addTaskCollector(this); s.start(); masterScheduler = true; jqmlogger.info("Scheduler (cron) has started"); }
/** * Refreshes the job schedule with the current list of enabled jobs of the type to be scheduled. * * @param scheduler The scheduler to update. * * @return The updated scheduler. */ protected Scheduler _refreshJobSchedule(Scheduler scheduler) { _disposeScheduler(scheduler); Scheduler result = new Scheduler(); _logger.info("Refreshing job schedule."); for (CronJob job : getEnabledJobs()) { _logger.debug("Adding job to scheduler: {}", job); try { result.schedule(job.getCronEntry(), new RunnableJob(lockType, job)); } catch (Exception ex) { String msg = "Failed to schedule job {0} : {1}"; JPAEntity entity = JPAEntity.class.cast(job); _auditService.createAudit(msg, entity, entity, ex.getMessage()); _logger.error("Failed to schedule job {} : {}", job, ex.getMessage()); } } result.start(); _logger.info("Job schedule refreshed."); return result; }
@Bean public Scheduler macCron4jScheduler() { return new Scheduler(); }
/** * 加入定时任务 * @param schedulingPattern 定时任务执行时间的crontab表达式 * @param task 任务 * @return 定时任务ID */ public static String schedule(String schedulingPattern, Runnable task) { return scheduler.schedule(schedulingPattern, task); }
void schedule() { if (enable) { scheduler = new Scheduler(); if (task instanceof Runnable) { scheduler.schedule(cron, (Runnable) task); } else if (task instanceof Task) { scheduler.schedule(cron, (Task) task); } else { scheduler = null; throw new IllegalStateException("Task 必须是 Runnable、ITask、ProcessTask 或者 Task 类型"); } scheduler.setDaemon(daemon); } }