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

问题描述 投票:2回答:1

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

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

附:我真的只想添加一个伪Main,它将被分叉(在服务启动时)由哪个Web服务器通过WAI运行应用程序。

haskell yesod haskell-wai
1个回答
3
投票

你应该把它放在scaffolded makeApplication文件中的Application.hs函数中。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.