package com.vip.saturn.job; import java.util.Map; import com.vip.saturn.job.msg.MsgHolder; public abstract class AbstractSaturnMsgJob { private Object saturnApi; public void setSaturnApi(Object saturnApi) { this.saturnApi = saturnApi; } /** * vms 作业处理入口 * @param jobName 作业名 * @param shardItem 分片ID * @param shardParam 分片参数 * @param msgHolder 消息内容 * @param shardingContext 其它参数信息(预留) */ public abstract SaturnJobReturn handleMsgJob(String jobName, Integer shardItem, String shardParam, MsgHolder msgHolder,SaturnJobExecutionContext shardingContext) throws InterruptedException; public void onTimeout(String jobName, Integer key, String value, MsgHolder msgHolder, SaturnJobExecutionContext shardingContext) { } public void beforeTimeout(String jobName, Integer key, String value, MsgHolder msgHolder, SaturnJobExecutionContext shardingContext) { } public void postForceStop(String jobName, Integer key, String value, MsgHolder msgHolder, SaturnJobExecutionContext shardingContext) { } public void updateJobCron(String jobName, String cron, Map<String, String> customContext) throws Exception { 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; } }