質問

私は疑問に思っています、おそらくワーカープールで、バックグラウンドtaksを実装する方法があります。あなたは私に方向性を示すことができます、私はこれのためのパッケージを書くことを考えていますか?

役に立ちましたか?

解決

2019更新

何かのためにパッケージを書くことを考える前に、最初にあなたが必要とする既存のパッケージがあるかどうかを見てください。これは、流星の世界では、これは「ジョブ/キュー/タスク/労働管理/スケジュール」パッケージの雰囲気を検討してから、同じ検索用語ではNPMで検討することを意味します。また、要件をより正確に定義する必要があります。

  • あなたは永続性が欲しいのですか、それともメモリ内の解決策が機能しますか?
  • さまざまなマシンにジョブを配布できるようにしますか?

流星特異的

  • job-collection - 信頼できる(私は2014年に生産でそれを使用しましたスタートアップ)、現在メンテナンスモードになっています。永続的なジョブを実行するようにスケジュールすることを可能にします(サーバー、クライアント)。
  • stevejobs - Max Savinによって積極的に維持され、いくつかの強力な流星ツール
  • LittleData:Synced-Cron - "Meteor用の簡単なcronシステム。複数のプロセス間のジョブの同期化をサポートします。 "

放棄されたパッケージ:

NPMパッケージ

Meteorは、NPMパッケージを数年間直接使用することができましたので、この質問はジョブ/ワーカー/キュー管理パッケージ。永続性を気にしない場合:

  • async "は、通常の「機能」容疑者を含む約70の機能(mapreduce、非同期制御フロー(filtereachparallel ...)の一般的なパターンと同様に、series ...)およびいくつかの一般的なパターン。
  • d3-queue - D3著者Mike Bostock

永続性が望まれている場合、MeteorはMongoDBをすでに使用しているので、MongoDBへの持続性を持つジョブスケジューリングパッケージを使用することが有利であり得る。最も強力で人気のようです agenda 、残念ながらそれは数ヶ月以内に維持されていません。それは問題

の重要なバックログを持っています。

redis をプロジェクトに追加した依存関係を追加しても構わないと思っています。< / P>

RRER "> kue - ノードの優先順位ジョブキュー

MongoDBのように、Redisは(Redis Sentinel経由で)高可用性を提供することもできます。また、複数のワーカーマシンの間でジョブを配布したい場合は、https://github.com/optimalbits/bull/問題/ 873#issuecomment-437445002 "REL=" NOFOLLOW NOREFERRER ">それらすべてを同じRedisサーバー。

他のヒント

特定の間隔または日付にタスクをスケジュールするために使用できるCronジョブに基づくパッケージがあります。ここにパッケージがあります: https://atmosphere.meteor.com/package/cron

そして、あなたがそのパッケージのソースを調べることが起こるならば、あなたは彼らが単に使っていることに気付くでしょう:

Meteor.setInterval( ... , delay );

したがって、タスクをデータベースに保存してから、起動時に間隔を空けてロードすると、おそらく正しい軌道に乗るでしょう。

Meteorに固有のものを探している場合は、Steve Jobsという新しいパッケージがあると共有できます。走行の背景ジョブをメソッドを呼び出すほど簡単に実行します。

ジョブの実行や失敗したジョブなどのことなど、予想されるすべての標準機能を持っています。GitHubで詳しく説明することができます:

http://github.com/msavin/stevejobs

私は適切なサポートが彼らのロードマップにあると思いますが、その間に私はsetIntervalを介してハッキーな方法で行くことに成功しました。 cron-tick パッケージを参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top