-
Notifications
You must be signed in to change notification settings - Fork 18
job dev
qifeng dai edited this page May 23, 2017
·
2 revisions
当前我们支持的任务类型有 任务描述,后面要支持新的类型,需要自行开发。
当前我们所有的任务都放在 com.baifendian.swordfish.execserver.job
包下面,这里主要介绍如何开发一个任务。
说明:描述了一个具体的任务接口。
public interface Job {
/**
* 作业前处理
*/
void before() throws Exception;
/**
* 作业处理
*/
void process() throws Exception;
/**
* 作业后处理
*/
void after() throws Exception;
/**
* 取消执行
*/
void cancel() throws Exception;
/**
* 作业是否已经启动
*
* @return
*/
boolean isStarted();
/**
* 作业是否执行完成
*
* @return 是否已完成
*/
boolean isCompleted();
/**
* 获取返回码
*
* @return 0 表示成功,其他值表示失败
*/
int getExitCode();
......
}
大部分任务都可以使用 AbstractProcessJob
的功能,这个类主要实现了一个 process
接口,这个接口会得到任务的一个 shell 命令,然后自己生成相关的语句,以 shell 脚本方式执行。当前,大部分的任务都直接继承了该接口。
说明:描述任务的参数信息,每个任务都有自己的参数。
当前任务相关的参数在 com.baifendian.swordfish.common.job.struct
包中。
该类提供的主要方法如下:
public abstract class BaseParam {
/**
* 校验参数是否合法 (需要校验的子类 @Override 该方法)
*
* @return 是否合法
*/
public boolean checkValid() {
return true;
}
......
}