2

私は、応答がクライアントに返された後 (または実装によっては前) に電子メールを送信し、統計を保存する必要がある API プロジェクトに取り組んでいます。どちらの場合も、Symfony の EventDispatcher コンポーネント (フレームワークとして Symfony を使用していません) を検討しているため、各コントローラー アクションはイベントをディスパッチして、電子メールをキューに追加したり、統計データベース テーブルにデータを挿入したりします。

そのため、物事は次のようになります

Controller 
    => Send Response to client
    => Dispatch Event email => EmailEventListener => Mail queue
    => Dispatch Event stats => StatsEventLister => Database 

この内部アクションを可能な限り非同期にしたいので、これを検討しています。この場合、これは適切な解決策ですか?

編集: Jovan Perovicが提案したように、さらに情報を追加しています。APIは、ユーザーがWebまたはモバイルアプリを介して通信するREST APIであり、APIのパフォーマンスを犠牲にすることなく、ログに記録し、統計を保存し、通知(主に電子メール)を送信したい.最初のアイデアは、戻った後に実行されるものを使用することでした.クライアントへの応答ですが、EventDispatcher を使用してそれが可能かどうかはわかりません。統計や通知を処理するためにキューを使用する場合でも、ログを書き込んで統計を保存するために、すべてのコントローラーが情報を送信できる集中化された場所が必要です。

私の目標がより明確になったことを願っています。ごめん。

4

1 に答える 1