node.js と mongodb を使用して Web アプリを構築しています。遅延ジョブを追加する必要があります。たとえば、サインアップの 1 か月後にユーザーにメールを送信します。Kue 以外の遅延ジョブに対する既存のソリューションは見つかりませんでしたが、Redis を使用しており、Web アプリに別のリソースを追加する前に、既存の Mongodb を使用したいと考えています。
そのための既存のソリューションはありますか?
node.js と mongodb を使用して Web アプリを構築しています。遅延ジョブを追加する必要があります。たとえば、サインアップの 1 か月後にユーザーにメールを送信します。Kue 以外の遅延ジョブに対する既存のソリューションは見つかりませんでしたが、Redis を使用しており、Web アプリに別のリソースを追加する前に、既存の Mongodb を使用したいと考えています。
そのための既存のソリューションはありますか?
短い答えはいいえです。Kue を MongoDB に移植する予定はありません。現時点では、同様の機能を提供するオープンソースの人気プロジェクトは他にありません。さらに、Redis はこの種のプロジェクトにより適しているようです。
Kue は非常に興味深いものであり、遅延タスク以上のものを提供しますが、要件は非常に単純なようです。
サインアップしてから1か月後にユーザーにメールを送信するだけでよい場合、またはそのようなことは、通常、OSレベルに組み込まれています。
sendEmail
あなたが方法を持っていると仮定して(一般的に、タスクがどのように行われるかを理解していれば)、私があなたに提案することは次のとおりです。
sendEmailHandler
、タスクを 1 日に 1 回実行するようにスケジュールします。Windows では、これは で行われます"Scheduled Tasks"
。OS X、BSD、および Linux では、これは を使用して行われcron
ます。( cronチュートリアル)。ほとんどの PaaS オプションには、この種のオプションもあります (nodejitsu、Azure など)。MongoDB
使用することを選択したタスクのコレクションを保持し、それぞれに「開始時間」を指定します。このようなタスクの例として、特定のユーザーが 1 か月後にメールを受信することがあります。sendEmailHandler
スクリプトで、どのタスクを実行する必要があるかを確認して実行します。その後、MongoDB collection
.これは手間のかかる作業のように思えますが、それほど時間はかかりません。ここで説明するコードはすべて非常に簡単です。
Kue を使用すると、優先度、試行、進行状況など、私の理解が正しければ必要のないことを実行できます。デガッギングとメンテナンスは通常より困難であるため、単純なことを行うために多くのことを行うライブラリを使用すると、最終的にあなたを苦しめる可能性があります。
幸運を!特定の部分について詳しく説明してほしい場合は、遠慮なくお知らせください。
別のオプションは議題です
Agenda は、Node.js 用の軽量ジョブ スケジューリング ライブラリです。