Node JSで非同期タスクを実行するためにJSでセロリに相当するものを提案してください。私は以下を検索できました:
手動スレッドと自動スレッドの両方をバックグラウンドで実行し、MongoDBとやり取りしました。
node-celeryは、Mongo DBではなくredis DBを使用しています。これを変更する方法はありますか?node-celery redisをインストールしたときに、依存関係としてインストールされました。
私はセロリは初めてです、ご案内ください。ありがとうございます。
Celeryは基本的にはRabbitMQクライアントです。プロデューサー(タスク)、コンシューマー(ワーカー)、およびタスクとワーカーの間でメッセージを配信するAMQPメッセージブローカーがあります。
それを知ることで node.jsに自分のセロリを書く が可能になります。
ここのnode-celeryは、ノードプロセスがセロリクライアント(プロデューサー/パブリッシャー)と セロリワーカー(コンシューマー) の両方として機能できるようにするライブラリです。
https://abhishek-tiwari.com/post/amqp-rabbitmq-and-celery-a-visual-guide-for-dummies を参照してください
行くKue、それはPython Word;のセロリに似た全体的な解決策です。それは、プロデューサー/コンシューマー、遅延タスク、タスク再試行、タスクTTL、同じキューをリッスンしている複数のコンシューマ間でタスクをラウンドロビンする機能など。
おそらく、Celeryはより多くの機能を備え、より多くのブローカーをサポートするより高度であり、必要に応じてnode-celeryを使用できますが、私の意見では、インストールを必要とするハイブリッドソリューションに行く必要はないと思いますof python and node when you can use only language that's 90%of the Cases(もちろんない限り)。
––––––––––––––––––––––––––––––––––––––––
編集-1/2018
私は、Kueを使用しないことをお勧めします。停止したプロジェクトのように見えるため、代わりにCeleryを使用してください。コミュニティによって非常によくサポートおよび維持されており、多数のユースケースをサポートしています。
Python Word;生産者/消費者、遅延タスク、タスク再試行、タスクTTL、タスク全体のラウンドロビン機能同じキューをリッスンしている複数のコンシューマなど.
Kue、非常に長い時間が経過した後も、まだ同じ古いコアの問題が未解決のままです:
これを読んでいる人がKueを書き直したくない場合は、それから始めないでください。単純なタスクに適しています。しかし、それらの多く、並行、またはタスクチェーン(1つのタスクが別のタスクを作成する場合)に対処する場合は、時間の浪費をやめます。
Kueをデバッグしようとして1か月無駄にしてしまいましたが、まだ成功していません。最良の選択は、RabbitMQおよび Rabbot のKue for Pubs/subメッセージングキューを変更することでした(別のRabbitMQのまとめ)。
個人的には、私はセロリをあまり使っていないので、セロリの代替品を探していて、誰かがクエに助言しているところ、私の血が沸騰していた。
遅延メールを送信したい場合( Kueの例のように )、エラーを気にすることなく、何でもやりたいことができます。ただし、信頼性の高いシステムタスク/メッセージキューが必要な場合は、Kueから始めないでください。個人的には5で行きます。node-celery(node celery)
私たちの経験では、キューは信頼できず、仕事を失っていました。確かに、以前のバージョンを使用していたため、おそらく修正されています。これは、TJがプロジェクトを中止し、新しいメンテナが選ばれなかった時期でもありました。 beanstalkdに切り替えて、とても満足しています。 beanstalkdへのノードインターフェースとして https://github.com/ceejbot/fivebeans を使用しています。
言及する価値もあります https://github.com/OptimalBits/bull 。これは、安定性と原子性のために作成された、高速で信頼性の高い、Redisベースのキューです。
Bull 4は現在ベータ版で、いくつかの素晴らしい機能があります https://github.com/taskforcesh/bullmq