【问题标题】:How do I turn off the Scala Fast Compilation server's (FSC) timeout?如何关闭 Scala 快速编译服务器 (FSC) 的超时?
【发布时间】:2010-12-13 07:01:00
【问题描述】:

我正在使用 Scala 编译服务器。这可能与我的 IDE IntelliJ IDEA 无关,但我只是通知您,我通过该 IDE 中的特殊运行配置启动 Scala 编译服务器。

在没有编译任何东西的一段时间后,编译服务器终止,没有任何消息。通常,我只有在尝试编译某些东西并且编译失败时才会注意到这一点。然后,我需要重新启动编译服务器,当然下一次编译需要很长时间,因为这又是启动编译服务器后的第一次编译。

如何关闭该超时?我查看了 scalac 的联机帮助页,似乎没有选择。我可以为该运行配置添加 VM 选项。

【问题讨论】:

  • 我认为您的问题与编译器服务器在您下次需要时不会自动重新启动这一事实有关。对吗?
  • 如果编译服务器能够(重新)在需要时自动启动,那就太好了。如果你知道我该怎么做,请告诉我。但是,如果它在一段时间后不会自行停止,那就更好了。
  • 此问题应包含关键字FSC (Fast Scala Compiler),以便更轻松地通过 Google 搜索。
  • @Jakub Holý:我在 StackOverflow 的分数太低,无法创建新标签。

标签: scala intellij-idea scalac fsc


【解决方案1】:

-max-idle 0 作为参数传递。它将在非常(非常!)最近的每晚上运行,并且它应该在 Scala 2.9.0 上可用。但是,不能保证在此之前名称不会改变。

【讨论】:

    【解决方案2】:

    我不认为你可以。这是来自编译服务器的代码 sn-p:

    object SocketServer
    {
      // After 30 idle minutes, politely exit.
      // Should the port file disappear, and the clients
      // therefore unable to contact this server instance,
      // the process will just eventually terminate by itself.
      val IdleTimeout = 1800000
      val BufferSize  = 10240
    
      def bufferedReader(s: Socket) = new BufferedReader(new InputStreamReader(s.getInputStream()))
      def bufferedOutput(s: Socket) = new BufferedOutputStream(s.getOutputStream, BufferSize)
    }
    

    我认为你应该在 scala-lang.org 中打开一个功能请求

    【讨论】:

    • 谢谢。无法覆盖的硬编码超时,嗯。不是真正的最佳实践。我将打开一个功能请求。
    • 在博客评论中提到的下一版 FSC 中的timeout will be configurable
    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    相关资源
    最近更新 更多