0

私のユーザーは好みの検索を保存できます。今度は、新しい検索結果が利用可能になるたびに電子メール通知を受信するために、それらをサブスクライブする可能性を与える必要があります(Yahooの回答など)。

手動でトリガーすると正常に動作するメーラーを既に設定しました。

今、私がする必要があるのは、スケジュールされた仕事からメーラーに電話することだけですが...私は本当にその分野の専門家ではありません。したがって、WheneverDelayed_jobSidekiqResqueSchedulerなどの中で この種のタスク(複数の郵送を伴う長期的なプロセス)には、どちら(または1つの組み合わせ)を使用する必要がありますか?

編集

Githubで利用できる実用的なサンプルアプリを開発しました: NotiSearch

それはかなりよく文書化されているので、あなたがそのようなものを開発しようとしているなら、私はあなたがそれをチェックすることを絶対にお勧めします。

PS:外部依存関係がないため 、 whendelayed_jobに依存することを選択しました。必要に応じて、よりスケーラブルなソリューションに移行するのは簡単です。

4

2 に答える 2

2

私は個人的にResqueとSidekiqと仕事をしました。これら2つの主な違いは、Sidekiqがジョブごとに新しいスレッドを生成することです。

Resqueにはジョブごとのプロセスがあります。これは基本的に、Resqueが失敗を想定し、1つのプロセスが失敗しても他のジョブは失敗しないことを意味します。Sidekiqはスレッドで動作するため、何らかの理由でそれらのスレッドの1つがロックされると、プロセス全体がロックされます。

別のQAResquevs Sidekiqの回答から?

Resque:

長所:

スレッドセーフを必要としません(そこにあるほとんどすべての宝石で動作します); インタプリタ設定はありません(任意のルビーを使用できます)。プラグインの負荷。短所

ワーカーごとにプロセスを実行します(より多くのメモリを使用します)。ジョブを再試行しません(とにかく、箱から出して)。Sidekiq:

長所

ワーカーごとにスレッドを実行します(使用するメモリがはるかに少なくなります)。より少ない分岐(より速く動作します); 箱から出してより多くのオプション。短所

[huge]には、コードとすべての依存関係のスレッドセーフが必要です。スレッドでスレッドセーフでないコードを実行すると、問題が発生します。プラグインははるかに少ない(現時点では2つしかない)。一部のルビーで他のルビーよりもうまく機能します(jrubyとrubiniusをお勧めしますが、GVL(グローバルVMロック)のためにMRIの効率が低下します)。

編集

とにかくあなたの質問に答えます。メーラーを使用したすべてのプロジェクトで、Resqueを使用しています。

于 2012-11-11T20:31:33.217 に答える
0

MailyHeraldを試してみてください-レール用の郵送管理の宝石。これにより、特定の条件が満たされた場合にのみ、ユーザーに定期的に送信されるメールを設定できます。つまり、新しい検索結果が利用可能になります。

MailyHeraldは、すべてのメーリングをバックグラウンドで自動的に処理し(Sidekiqを使用)、管理目的で優れたWebUIを提供します。

于 2015-11-23T15:35:51.633 に答える