何处向Yesod应用程序添加“始终运行”线程

时间:2012-06-10 15:00:31

标签: haskell yesod haskell-wai

我正在编写Yesod应用程序,但它还需要分叉几个非Web服务。 (UDP侦听器,TCP侦听端口等)

在叉子中拼接的正确位置在哪里,无论我的应用程序是在“yesod devel”中运行还是部署用于生产,这都可以无缝地工作。

P.S。我真的只想添加一个伪Main,它将被分叉(在服务启动时)由任何网络服务器通过WAI运行应用程序。

1 个答案:

答案 0 :(得分:3)

您应该将其放在scaffolded makeApplication文件中的Application.hs函数中。

对于启动 1 的每个Web应用程序实例,此函数将运行一次,并且由于您几乎总是只运行应用程序的一个实例,因此您应该这样做。

1 请注意,理论上可以在同一个进程中运行同一个WAI应用程序的多个实例,例如如果你想要两个侦听不同端口的实例,但默认情况下这绝不会发生