2012-05-10 9 views
0

ラックのミドルウェアは現在のリクエスト/レスポンスを変更するためのものですが、メールを送信するにはenv['user_id']となるSendEmailミドルウェアが必要ですか?`SendEmail`ラックミドルウェアやその他のバックグラウンドジョブミドルウェアを持っても構いませんか?

プロセス全体(リクエスト+電子メールの送信)が非同期であるとします。

+0

なぜあなたはそれをしますか? – d11wtq

+0

さて、1つのエンドポイントが非常に複雑になっているGoliathアプリがあります。テストとメンテナンスが難しいので、私はそれをカットすることに決めました。元の計画は、多くのエンドポイントを持ち、httpを介してそれらの間で通信することでしたが、それを行うことはできませんでした。これは第2のアイデアでした。別の考え方は、EventMachineキューを使用することです。つまり、 'user_id'を' SendEmail'キューに置き、それを他の場所で処理します。ほとんどの場合、この時点で簡単に保守とテストが行​​われます。 –

+0

ジョブをキューに追加することは間違いなく良い選択です。 –

答えて

1

もしあなたが本当にGoliathでやりたければ、私はプラグインを作ってそこでやってみることをお勧めします。 configにキューを作成し、そのプラグインがキューから項目をポップしてメールを送信するようにします。

関連する問題