play fork run有什么作用?

时间:2016-12-29 17:02:31

标签: playframework

我正在使用Play框架并遇到hotswapping问题(甚至是及时启动sbt服务器)

有几个消息来源概述了这个问题与游戏的fork运行有关,要解决这个问题,应该把它变成假。

但是什么是播放fork运行以及关闭它的缺点是什么?

BTW这里有一些参考文献:

solution outlining fork run as culprit

another solution, same thing

1 个答案:

答案 0 :(得分:4)

播放fork运行,是分支JVM的sbt的一个功能。分叉JVM意味着JVM作为独立的JVM运行,作为OS中的不同进程运行。

如果JVM未分叉,则可能是某些JVM范围的设置(例如系统属性)会影响播放实例。 其中一个优点是,当fork在多个forks中运行多个测试时崩溃,其他forks仍将继续运行。

在播放的情况下,JVM是分叉的,因此它不会在sbt运行的同一JVM进程中运行。请参阅以下内容(来自sbt documentation):

  

默认情况下,运行任务在与sbt相同的JVM中运行。但是,在某些情况下需要分叉。或者,您可能希望在实现新任务时分叉Java进程。

这很有用,因为如果您的播放实例崩溃,例如,当调用system.exit或发生未终止的线程时,sbt将继续运行。否则sbt也会崩溃。

的引用:
What does it mean to have a forked java VM?
Getting Started with SBT for Scala