es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede ejecutar la aplicación Play en un JVM bifurcado desde dentro de SBT.

Tengo una aplicación web de Scala Play Framework (usando Scala v2.13.7 y Play v2.8.8) construida con SBT (v1.5.5).

Mi archivo build.sbt incluye lo siguiente:

lazy val root = (project in file("."))
  .enablePlugins(PlayScala)
  .settings(

// etc.

    fork := true,
    javaOptions ++= Seq(
      "-Xms1G",
      "-Xmx8G",
    ),
  )

Sin embargo, no se inicia un JVM separado para la aplicación web cuando ejecuto sbt run, y las configuraciones de memoria son las del JVM de SBT (-Xms1024m y -Xmx1024m).

¿El complemento PlayScala interfiere o desactiva el arranque en paralelo cuando se ejecuta la aplicación web en sí misma? ¿Puedo forzar a la aplicación web a utilizar un JVM en paralelo desde dentro de SBT?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el complemento PlayScala en tu archivo build.sbt puede estar interfiriendo con el proceso de bifurcación al ejecutar la aplicación web misma utilizando sbt run. Para forzar a la aplicación web a usar un JVM bifurcado desde SBT, puedes modificar tu archivo build.sbt para incluir lo siguiente:

    lazy val root = (projecto en file("."))
      .enablePlugins(PlayScala)
      .settings(
        // etc.
    
        javaOptions += "-Xmx8G",
        fork := true,
        fork in Test := true,
        javaOptions in run ++= Seq("-Xmx8G"),
      )
    

    Ten en cuenta que la configuración fork se ha establecido en true, y las javaOptions se han configurado para utilizar un tamaño máximo de heap de 8G. Además, se han agregado las javaOptions en run para asegurar que la aplicación web esté utilizando la configuración de memoria correcta. Con estas modificaciones, sbt run ahora debería crear un JVM separado para la aplicación web y utilizar la configuración de memoria actualizada.

Comments are closed.