如何关闭Scala快速编译服务器(FSC)超时?

Mad*_*doc 13 scala intellij-idea scalac fsc

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

经过一段时间没有编译任何东西,编译服务器终止,没有任何消息.通常,当我尝试编译某些内容并且编译失败时,我只会注意到这一点.然后,我需要再次启动编译服务器,当然下一次编译需要很长时间,因为它是自启动编译服务器以来的第一次编译.

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

Itt*_*ayD 6

我认为你不能.以下是编译服务器的代码片段:

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)
}
Run Code Online (Sandbox Code Playgroud)

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

  • 在博客评论中提到的下一版FSC中[超时将是可配置的](http://alarmingdevelopment.org/?p=562#comment-58925). (2认同)

Dan*_*ral 6

传递-max-idle 0参数.它将在最近的一个非常(非常!)上工作,它应该在Scala 2.9.0出现时可用.但是,不能保证名称在此之前不会改变.