【问题标题】:Play Framework as Service inside a scala application在 Scala 应用程序中将框架作为服务播放
【发布时间】:2014-03-28 21:18:55
【问题描述】:

我有一个小问题。我必须创建一个 scala 应用程序。这个应用程序必须做一些事情。创建线程和其他东西。这对于这个问题并不重要。

但是要与这个应用程序交互,就需要创建一个网络界面。我想通过玩来创建这个界面。 问题是,我必须将播放应用程序集成到我的普通应用程序中。作为组件。在应用程序运行的同时,他还必须启动播放组件。如果这个工人在某个时候失败了,重新启动它。

这可能吗?如果是的话,你会建议哪种方式。

【问题讨论】:

  • 顺便看看spray"spray 是一个开源工具包,用于在 Scala 和 Akka 之上构建基于 REST/HTTP 的集成层。作为异步、基于 actor、快速、轻量级、模块化和可测试的,它是连接 Scala 应用程序的好方法走向世界。”

标签: scala playframework


【解决方案1】:

您可以在播放框架启动时调用您的正常应用程序。 (http://www.playframework.com/documentation/2.2.x/ScalaGlobal) 更具体地说,全局对象中的 onStart 方法可能是您调用普通代码的正确位置。

import play.api._

object Global extends GlobalSettings {
  val yourInstance = new YourInstance()
  override def onStart(app: Application) {
    yourInstance.start()
  }
}

此外,您可以将线程模型更改为参与者模型。 (http://www.playframework.com/documentation/2.2.x/ScalaAkka)

【讨论】:

  • 非常感谢。这意味着我的应用程序必须是 Play 应用程序。这需要导入我的其他应用程序吗?我说的对吗?
  • 是的,我认为这很简单。
  • 但是通过这种方式,我只有启动的播放应用程序的资源。我不是吗?如果是,一个复杂的应用程序可能会耗尽内存。关于构建播放框架 jar 并通过主应用程序启动的方式是什么。你觉得他们是个好方法吗?
猜你喜欢
  • 1970-01-01
  • 2015-08-03
  • 2017-06-11
  • 1970-01-01
  • 2016-06-12
  • 2015-12-17
  • 2018-07-16
  • 2023-03-08
  • 2019-03-23
相关资源
最近更新 更多