関数を書きました
app :: Request -> H.Session H.Postgres IO Response
これは、Web 要求を受け入れて応答を作成します (必要に応じてデータベースを調べます)。実際に応答を送信するために、ラッパーを作成しました
runApp :: H.Postgres -> H.SessionSettings -> Application
runApp pg sess req respond =
respond =<< H.session pg sess (app req)
この関数をWarprunSettings
に渡して、永久にループし、リクエストを処理します。
runSettings appSettings $ runApp pgSettings sessSettings
ただし、接続プールと準備されたステートメントの目的を無効にするすべての要求に対して新しいセッションを作成するため、これは本当に悪いことです。
その逆ではなく、runSettings
内側に電話したいと思います。H.session
ただしrunSettings
、署名がSettings -> Application -> IO ()
あり、中IO
に入るとセッションにアクセスできなくなりました。中に戻る方法はありSession b m r
ますか?
これは、プライベート メールからの質問の再投稿です。