1

Yesod ハンドラー内からスレッドを開始する方法の例を誰か教えてください。

私はこのようなものが欲しい:

  1. ユーザーは、Yesod ルートの CreateR である mypage.com/create にアクセスします。

  2. ユーザーがページのボタンを押して投稿

  3. CreateR の POST ハンドラーは新しいスレッドをフォークし、ユーザーを何らかの「成功」ページにリダイレクトします。

  4. スレッドは引き続きバックグラウンドで実行され、他のハンドラーがアクセスする STM 変数を変更します。

LiftIO を使用していましたが、次のエラーでクラッシュしていました。

Exit code: ExitFailure 139

ドキュメントにはresourceForkIOについて何か書かれていますが、その関数をどこで/どのように使用するかわからないため、型を機能させることができません。

4

1 に答える 1

2

特に長時間実行されるタスクの場合は、常にそれを行います。

liftIO $ forkIO $ customizerJob cnStr env

情報交換や進行に ResourceT や TVar は使用しません。むしろ、dbでテーブルを使用します。非常に単純で、haskell モナド変換子と STM の難解な知識は必要ありません :)

于 2013-10-01T03:37:16.437 に答える