我正在编写Yesod应用程序,但它还需要分叉几个非Web服务。 (UDP侦听器,TCP侦听端口等)
在叉子中拼接的正确位置在哪里,无论我的应用程序是在“yesod devel”中运行还是部署用于生产,这都可以无缝地工作。
P.S。我真的只想添加一个伪Main,它将被分叉(在服务启动时)由任何网络服务器通过WAI运行应用程序。
答案 0 :(得分:3)
您应该将其放在scaffolded makeApplication
文件中的Application.hs
函数中。
对于启动 1 的每个Web应用程序实例,此函数将运行一次,并且由于您几乎总是只运行应用程序的一个实例,因此您应该这样做。
1 请注意,理论上可以在同一个进程中运行同一个WAI应用程序的多个实例,例如如果你想要两个侦听不同端口的实例,但默认情况下这绝不会发生