parent
7a129468a4
commit
935cc1276f
@ -0,0 +1,55 @@
|
|||||||
|
package com.xxl.job.core.handler.impl;
|
||||||
|
|
||||||
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
|
import com.xxl.job.core.glue.GlueTypeEnum;
|
||||||
|
import com.xxl.job.core.handler.IJobHandler;
|
||||||
|
import com.xxl.job.core.log.XxlJobFileAppender;
|
||||||
|
import com.xxl.job.core.util.ScriptUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by xuxueli on 17/4/27.
|
||||||
|
*/
|
||||||
|
public class ScriptJobHandler extends IJobHandler {
|
||||||
|
|
||||||
|
private int jobId;
|
||||||
|
private long glueUpdatetime;
|
||||||
|
private String gluesource;
|
||||||
|
private GlueTypeEnum glueType;
|
||||||
|
|
||||||
|
public ScriptJobHandler(int jobId, long glueUpdatetime, String gluesource, GlueTypeEnum glueType){
|
||||||
|
this.jobId = jobId;
|
||||||
|
this.glueUpdatetime = glueUpdatetime;
|
||||||
|
this.gluesource = gluesource;
|
||||||
|
this.glueType = glueType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getGlueUpdatetime() {
|
||||||
|
return glueUpdatetime;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ReturnT<String> execute(String... params) throws Exception {
|
||||||
|
|
||||||
|
// cmd + script-file-name
|
||||||
|
String cmd = "bash";
|
||||||
|
String scriptFileName = null;
|
||||||
|
if (GlueTypeEnum.GLUE_SHELL == glueType) {
|
||||||
|
cmd = "bash";
|
||||||
|
scriptFileName = XxlJobFileAppender.filePath.concat("gluesource/").concat(String.valueOf(jobId)).concat("_").concat(String.valueOf(glueUpdatetime)).concat(".sh");
|
||||||
|
} else if (GlueTypeEnum.GLUE_PYTHON == glueType) {
|
||||||
|
cmd = "python";
|
||||||
|
scriptFileName = XxlJobFileAppender.filePath.concat("gluesource/").concat(String.valueOf(jobId)).concat("_").concat(String.valueOf(glueUpdatetime)).concat(".py");
|
||||||
|
}
|
||||||
|
|
||||||
|
// make script file
|
||||||
|
ScriptUtil.markScriptFile(scriptFileName, gluesource);
|
||||||
|
|
||||||
|
// log file
|
||||||
|
String logFileName = XxlJobFileAppender.filePath.concat(XxlJobFileAppender.contextHolder.get());
|
||||||
|
|
||||||
|
// invoke
|
||||||
|
ScriptUtil.execToFile(cmd, scriptFileName, logFileName);
|
||||||
|
return ReturnT.SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue