1

Web アプリがサブルーチンを非同期で実行できるように、基本的で柔軟な「イベント キュー」を実装しようとしています。私が今取り組んでいる方法は、アプリがデータベースの「イベントキュー」テーブルにレコードを書き込み、何をいつ実行するかに関する情報を書き込むことです。次に、そのテーブルを定期的に照会するデーモン スクリプトを用意し、何かを実行する必要がある場合はそれを起動します。

AnyEvent や EV などを使用してウォッチャーへの移行を開始したいので、データベースに頻繁にアクセスすることはありませんが、できる限り試してみてください。このようなものを設定するための「ベスト プラクティス」に関する良い情報が見つかりません。 . AnyEvent のドキュメントは非常に優れていますが、イベントがどのように渡されるべきかを知っていることを前提としているようです...私は知りません。

ウォッチャーは何を監視する必要がありますか? ファイル?もしそうなら、そのファイルには何がありますか?大量のデータを送信する必要はありません。基本的には、「すぐにこのサブを実行してください」というメッセージが必要なだけです。

誰かが私を正しい方向に向けてくれてありがとう。

編集: より具体的にするように要求されました:私が起動しようとしているイベントはさまざまです。送信が必要な電子メールの場合もあれば、DB の作業の場合もあり、アクションを数時間または数日遅らせる必要がある場合もあります。すべての場合において、アクションを処理する何らかのバックエンド スクリプトがあります。フロントエンド (Web アプリ) がバックエンドに「x 分以内にこれを行う必要があります」または「必要です」と伝える方法が必要なだけです。あなたは今これをする」

4

2 に答える 2

1

ノンブロッキングで非同期に応答するように構築されたMojoliciousを見るかもしれません。EV がインストールされている場合は、EV を内部で使用することもできます。開始するには、ドキュメントを読んでMojolicious::Liteから、ここからガイドを (順番に) 読んでください: http://mojolicio.us/perldoc

では、あなたが実際にやろうとしていることは何ですか?あなたが実際に必要なものを説明するまでは、それ以上のことはできません.

于 2013-03-15T23:50:39.613 に答える
0

メッセージ キューを介して非同期タスクを実行するための CPAN モジュールがいくつかあります。例:

于 2013-03-16T07:12:46.120 に答える