package com.vip.saturn.job;
import java.util.Map;
import com.vip.saturn.job.exception.SaturnJobException;
public abstract class AbstractSaturnJavaJob {
private Object saturnApi;
public void setSaturnApi(Object saturnApi) {
this.saturnApi = saturnApi;
}
/**
* java 作业处理入口
* @param jobName 作业名
* @param shardItem 分片ID
* @param shardParam 分片参数
* @param shardingContext 其它参数信息(预留)
*/
public abstract SaturnJobReturn handleJavaJob(String jobName, Integer shardItem, String shardParam, SaturnJobExecutionContext shardingContext) throws InterruptedException;
public void onTimeout(String jobName, Integer key, String value, SaturnJobExecutionContext shardingContext) {
}
public void beforeTimeout(String jobName, Integer key, String value, SaturnJobExecutionContext shardingContext) {
}
public void postForceStop(String jobName, Integer key, String value, SaturnJobExecutionContext shardingContext) {
}
public void updateJobCron(String jobName, String cron, Map<String, String> customContext) throws SaturnJobException {
if(saturnApi != null){
Class<?> clazz = saturnApi.getClass();
try {
clazz.getMethod("updateJobCron", String.class,String.class,Map.class).invoke(saturnApi, jobName, cron, customContext);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
public static Object getObject(){
return null;
}
}