Multithreading 在Yesod运行期货服务
在Scala Play框架中,建议在未来(Multithreading 在Yesod运行期货服务,multithreading,haskell,yesod,Multithreading,Haskell,Yesod,在Scala Play框架中,建议在未来(Future)中执行长时间运行的进程,如数据库访问,因为侦听web请求的工作线程数量有限。这通常是通过将进程包装在Future{…}中并让方法返回Future[SimpleRequest]来实现的 我应该在Yesod做类似的事情吗?如果是,怎么做 我知道Haskell(GHC)有非常轻的螺纹(“火花”)。YesSOD是否在单独的spark中启动每个请求?每个YesSOD请求都在其自己的绿色线程中运行(sparks在GHC land中实际上意味着其他内容,
Future
)中执行长时间运行的进程,如数据库访问,因为侦听web请求的工作线程数量有限。这通常是通过将进程包装在Future{…}
中并让方法返回Future[SimpleRequest]
来实现的
我应该在Yesod做类似的事情吗?如果是,怎么做
我知道Haskell(GHC)有非常轻的螺纹(“火花”)。YesSOD是否在单独的spark中启动每个请求?每个YesSOD请求都在其自己的绿色线程中运行(sparks在GHC land中实际上意味着其他内容,但听起来与您习惯于使用Scala的内容类似)。当与客户端的连接终止时,该线程将终止。如果您想让某些东西比该线程更长寿,请使用
forkIO
,或者在我看来,使用异步包更好