cro*_*ies 5 command-line scala microkernel akka
我有下面的Akka微内核:
class ServiceKernel extends Bootable {
val system = ActorSystem("service-kernel")
def startup = {
system.actorOf(Props(new Boot(false))) ! Start
}
def shutdown = {
system.shutdown()
}
}
Run Code Online (Sandbox Code Playgroud)
因为内核扩展Bootable而不是App,我如何访问启动内核时使用的命令行参数?例如,如果我使用start namespace.ServiceKernel -d rundevmode或类似地运行内核.谢谢!
我认为值得在微内核中添加有关启动脚本的信息.在/bin/start你注意到以下内容:
#!/bin/sh
AKKA_HOME="$(cd "$(cd "$(dirname "$0")"; pwd -P)"/..; pwd)"
AKKA_CLASSPATH="$AKKA_HOME/config:$AKKA_HOME/lib/*"
JAVA_OPTS="-Xms256M -Xmx512M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2"
java $JAVA_OPTS -cp "$AKKA_CLASSPATH" -Dakka.home="$AKKA_HOME" akka.kernel.Main "$@"
Run Code Online (Sandbox Code Playgroud)
虽然om-nom-nom最初提出了-D选项,但看起来它正在使用中,并且主要启动参数被传递给akka.kernel.Main类(在本例中将是ServiceKernel上面的类).
这是最小的例子:
\n\nobject Foo extends App {\n val debugModeOn = System.getProperty("debugmode") != null\n val msg = if (debugModeOn) "in debug mode" else "not in debug mode"\n println(msg)\n}\n\n\xc2\xbb scala Foo -Ddebugmode\nin debug mode\n\xc2\xbb scala Foo \nnot in debug mode\nRun Code Online (Sandbox Code Playgroud)\n\n您可以进行额外检查来解决此问题:
\n\n\xc2\xbb scala Foo -Ddebugmode=false\nin debug mode\nRun Code Online (Sandbox Code Playgroud)\n\nPS你可能还想使用Properties helper,它包含一堆方法,如 propOrNone、propOrElse 等
\n| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |