Browse Source

[refactor][perf] cache compiled regex pattern (#10099)

3.1.0-release
youzipi 2 years ago committed by GitHub
parent
commit
5161df04d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java

11
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java

@ -40,9 +40,8 @@ import java.util.regex.Pattern;
* parameter parse utils
*/
public class ParameterUtils {
private static final String DATE_PARSE_PATTERN = "\\$\\[([^\\$\\]]+)]";
private static final String DATE_START_PATTERN = "^[0-9]";
private static final Pattern DATE_PARSE_PATTERN = Pattern.compile("\\$\\[([^\\$\\]]+)]");
private static final Pattern DATE_START_PATTERN = Pattern.compile("^[0-9]");
private ParameterUtils() {
throw new UnsupportedOperationException("Construct ParameterUtils");
@ -165,15 +164,15 @@ public class ParameterUtils {
if (templateStr == null) {
return null;
}
Pattern pattern = Pattern.compile(DATE_PARSE_PATTERN);
StringBuffer newValue = new StringBuffer(templateStr.length());
Matcher matcher = pattern.matcher(templateStr);
Matcher matcher = DATE_PARSE_PATTERN.matcher(templateStr);
while (matcher.find()) {
String key = matcher.group(1);
if (Pattern.matches(DATE_START_PATTERN, key)) {
if (DATE_START_PATTERN.matcher(key).matches()) {
continue;
}
String value = TimePlaceholderUtils.getPlaceHolderTime(key, date);

Loading…
Cancel
Save