【问题标题】:What does play fork run do?play fork run 有什么作用?
【发布时间】:2016-12-29 17:02:30
【问题描述】:

我正在使用 play 框架并且遇到热交换问题(甚至是及时启动 sbt 服务器)

一些消息来源概述了这个问题与 play 的分叉运行有关,要解决这个问题,应该将其设置为 false。

但是 play fork run 有什么作用?关闭它有什么缺点?

顺便说一句,这里有一些参考资料:

solution outlining fork run as culprit

another solution, same thing

【问题讨论】:

    标签: playframework


    【解决方案1】:

    Play fork run,是 sbt 的一个函数,其中 JVM 是 fork 的。分叉 JVM 意味着 JVM 作为单独的 JVM 运行,在 OS 中作为不同的进程运行。

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

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

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

    这很有用,因为如果你的 play 实例崩溃,例如当 system.exit 被调用或出现未终止的线程时,sbt 将继续运行。否则 sbt 也会崩溃。

    参考资料:
    What does it mean to have a forked java VM?
    Getting Started with SBT for Scala

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多