gpt4 book ai didi

haskell - Yesod 中的共享数据

转载 作者:行者123 更新时间:2023-12-02 10:04:41 27 4
gpt4 key购买 nike

我想在 Yesod 中跨请求共享一些数据。就我而言,数据是 MVar (Data.Map Text ReadWriteLock),但我认为共享数据的格式在这里并不重要。

在 Foundation.hs 中,有一条评论说我可以向 App 添加字段,并且每个处理程序都可以访问那里的数据。这似乎是我可以用来在不同处理程序之间共享数据的方法。我一直在翻阅Yesod的书,但我找不到任何从App获取数据的例子。

  • 如何从处理程序中访问新创建的字段?

我认为这可能是 STM 的一个很好的用例。我可以共享一个TVar(Data.Map Text ReadWriteLock)。但创建一个 TVar TVar 包装在 STM monad 中。我可能是错的,但对我来说,似乎整个 Yesod“主循环”需要在 STM monad 中运行。

  • 使用 STM 是一个可行的选择吗?谁能详细说明如何实现这一目标?

最佳答案

这个tutorial for building a file server with Yesod很好地展示了如何使用 STM 访问共享数据。相关部分从第2部分开始。

关于haskell - Yesod 中的共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20898129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com