|
@@ -17,11 +17,14 @@
|
|
|
|
|
|
package org.apache.dolphinscheduler.server.worker.task.shell;
|
|
|
|
|
|
+import static java.util.Calendar.DAY_OF_MONTH;
|
|
|
+
|
|
|
import org.apache.dolphinscheduler.common.Constants;
|
|
|
import org.apache.dolphinscheduler.common.enums.CommandType;
|
|
|
import org.apache.dolphinscheduler.common.process.Property;
|
|
|
import org.apache.dolphinscheduler.common.task.AbstractParameters;
|
|
|
import org.apache.dolphinscheduler.common.task.shell.ShellParameters;
|
|
|
+import org.apache.dolphinscheduler.common.utils.DateUtils;
|
|
|
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
|
|
import org.apache.dolphinscheduler.common.utils.OSUtils;
|
|
|
import org.apache.dolphinscheduler.common.utils.ParameterUtils;
|
|
@@ -38,6 +41,7 @@ import java.nio.file.StandardOpenOption;
|
|
|
import java.nio.file.attribute.FileAttribute;
|
|
|
import java.nio.file.attribute.PosixFilePermission;
|
|
|
import java.nio.file.attribute.PosixFilePermissions;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
|
|
@@ -136,7 +140,20 @@ public class ShellTask extends AbstractTask {
|
|
|
CommandType.of(taskExecutionContext.getCmdTypeIfComplement()),
|
|
|
taskExecutionContext.getScheduleTime());
|
|
|
// replace variable TIME with $[YYYYmmddd...] in shell file when history run job and batch complement job
|
|
|
- script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap));
|
|
|
+ if (taskExecutionContext.getScheduleTime() != null) {
|
|
|
+ if (null == paramsMap) {
|
|
|
+ paramsMap = new HashMap<>();
|
|
|
+ }
|
|
|
+ String dateTime = DateUtils.format(DateUtils.add(taskExecutionContext.getScheduleTime(), DAY_OF_MONTH, 1), Constants.PARAMETER_FORMAT_TIME);
|
|
|
+ Property p = new Property();
|
|
|
+ p.setValue(dateTime);
|
|
|
+ p.setProp(Constants.PARAMETER_DATETIME);
|
|
|
+ paramsMap.put(Constants.PARAMETER_DATETIME, p);
|
|
|
+ }
|
|
|
+ if (null != paramsMap) {
|
|
|
+ script = ParameterUtils.convertParameterPlaceholders(script, ParamUtils.convert(paramsMap));
|
|
|
+ }
|
|
|
+
|
|
|
shellParameters.setRawScript(script);
|
|
|
|
|
|
logger.info("raw script : {}", shellParameters.getRawScript());
|