/** * */ package com.taobao.top.analysis.node; import java.util.Map; import com.taobao.top.analysis.config.MasterConfig; import com.taobao.top.analysis.exception.AnalysisException; import com.taobao.top.analysis.node.job.Job; /** * 分析器Master获取任务集的管理接口 * @author fangweng * @Email fangweng@taobao.com * 2011-11-28 * */ public interface IJobBuilder extends IComponent<MasterConfig>{ /** * 默认从config获得job编译路径 * @return * @throws AnalysisException */ public Map<String,Job> build() throws AnalysisException; /** * 构建某一个Job的任务 * @param job * @throws AnalysisException */ public void buildTasks(Job job) throws AnalysisException; /** * 从某一个位置获取任务集 * @param 可以自己扩展是从本地文件载入还是http等其他方式载入 * @return * @throws AnalysisException */ public Map<String,Job> build(String config) throws AnalysisException; /** * 重新载入 * @return * @throws AnalysisException */ public Map<String,Job> rebuild(Map<String,Job> jobs) throws AnalysisException; /** * 判断是否需要重新载入 * @return */ public boolean isNeedRebuild(); /** * 设置重新载入 * @param needRebuild */ public void setNeedRebuild(boolean needRebuild); /** * 获取jobs配置文件的名称 * @return */ public String getJobResource(); /** * 判断是否修改 * 用于判断是否任务需要重新build * @return */ public boolean isModified(); }