[Java] Add jvm-parameters in Config. (#3065)

This commit is contained in:
Wang Qing
2018-10-17 06:03:18 +08:00
committed by Hao Chen
parent 4d8cfc0bf5
commit 64e5eb305e
3 changed files with 15 additions and 2 deletions
@@ -6,6 +6,7 @@ import com.google.common.collect.ImmutableList;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigException;
import com.typesafe.config.ConfigFactory;
import java.util.List;
import java.util.Map;
import org.ray.api.id.UniqueId;
@@ -35,6 +36,7 @@ public class RayConfig {
public final boolean redirectOutput;
public final List<String> libraryPath;
public final List<String> classpath;
public final List<String> jvmParameters;
private String redisAddress;
private String redisIp;
@@ -127,6 +129,12 @@ public class RayConfig {
List<String> customLibraryPath = config.getStringList("ray.library.path");
// custom classpath
classpath = config.getStringList("ray.classpath");
// custom worker jvm parameters
if (config.hasPath("ray.worker.jvm-parameters")) {
jvmParameters = config.getStringList("ray.worker.jvm-parameters");
} else {
jvmParameters = ImmutableList.of();
}
// redis configurations
String redisAddress = config.getString("ray.redis.address");
@@ -205,8 +205,8 @@ public class RunManager {
// Generate classpath based on current classpath + user-defined classpath.
String classpath = concatPath(Stream.concat(
Stream.of(System.getProperty("java.class.path").split(":")),
rayConfig.classpath.stream()
rayConfig.classpath.stream(),
Stream.of(System.getProperty("java.class.path").split(":"))
));
cmd.add(classpath);
@@ -227,6 +227,8 @@ public class RunManager {
// Config overwrite
cmd.add("-Dray.redis.address=" + rayConfig.getRedisAddress());
cmd.addAll(rayConfig.jvmParameters);
// Main class
cmd.add(WORKER_CLASS);
String command = Joiner.on(" ").join(cmd);
@@ -43,6 +43,9 @@ ray {
// Otherwise, output will be printed to console.
redirect-output: true
// Custom worker jvm parameters.
worker.jvm-parameters: []
// Custom `java.library.path`
// Note, do not use `dir1:dir2` format, put each dir as a list item.
library.path: []