package com.walker.scheduler; import com.walker.infrastructure.arguments.ArgumentsManager; /** * 调度器规范定义。

*
 * 1、start, stop, pause
 * 2、调度类型:仅执行一次、按照开始时间执行一次、在一定时间段反复执行
 * 3、执行频率:仅一次、可多次执行、
 * 
* @author shikeying * @date 2015年12月22日 * */ public interface Scheduler { int getId(); String getName(); Option getOption(); String getStoreId(); long getStartTime(); void start(); void stop(); void pause(); void restart(); /** * 告诉调度器,任务调用设否要设置'终止条件'。

* 因为通常一个任务在重复执行过程中,如果获取不到外部新的数据,继续执行就没有意义,
* 因此通过该参数,系统可以在适当的时候暂停某个任务,来为其他任务分配资源。 * @param boo */ void setTaskTerminateCondition(boolean boo); /** * 设置调度时间设置选项 * @param option */ void setOption(Option option); void setMaxFailedTimes(int maxFailedTimes); /** * 设置调度存储引擎对象 * @param scheduleEngine */ void setScheduleEngine(ScheduleEngine scheduleEngine); boolean isStarted(); boolean isPause(); /** * 返回执行任务如果没有采集到数据,是否终止该任务。
* 如果返回true则终止任务执行。 * @return */ boolean isTaskTerminateCondition(); /** * 返回是否'核心'调度器,核心调度器不能够被人为管理(启动、停止等)。
* 它只能被超级管理员控制,通常启动后不会被终止(除非超管干预)。 * @return */ boolean isKernelScheduler(); void setArgumentManager(ArgumentsManager argumentManager); ArgumentsManager getArgumentManager(); }