2

私の問題の説明は次のとおりです。状態ベースのデータベース無限クローラーが n 個あります。現在、どのように発生しているか:

  • クロールには単一のマシンを使用しています。
  • 優先キューには 3 つのレベルがあります。高、中、低。
  • 開始時に、すべてのデータベース ジョブが下位レベルのキューに入れられます。
  • ワーカーはキューからジョブを読み取り、操作を行います。
  • ジョブが終了すると、5 分遅れて再スケジュールされます。

私が見つけた解決策

Priority Queue の場合、次を使用できます。

- http://zookeeper.apache.org/doc/r3.2.2/recipes.html#sc_recipes_priorityQueues

私がまだ探している問題の解決策は次のとおりです。

  1. 将来のスケジュール時間でキュー内のジョブを再スケジュールする方法。Zookeeper でそれを行う方法はありますか?
  2. すでに開始されているジョブのキャンセル。ユーザーがデータベース認証の詳細を変更したとします。そのデータベースに対して既に実行中のジョブを停止し、新しい詳細で再開したいと考えています。私が考えたのは、ワーカーを開始しているときに、それがznodeの変更であることをサブスクライブし、何かが発生した場合、そのジョブを停止して再スケジュールすることです。
  3. 無限キュー 私が考えたのは、終了後、キューから削除され、将来のスケジュール時間で再読み込みされるということです。(その実装はポイント1に依存します)

このタスクの無限のタスクを行う正しい方法はありますか?

4

0 に答える 0