基本的に、私の消費者は生産者でもあります。初期データセットを取得し、キューに送信します。消費者がアイテムを受け取り、それを処理します。その時点から、次の 3 つの可能性があります。
- データは良好で、ストレージ用に「良好な」キューを配置します
- データが不良で破棄されました
- データは良好 (まだ) または不良 (まだ) ではないため、データは小さな部分に分割され、さらに処理するためにキューに戻されます。
私の問題はステップ 3 にあります。最初はキューが非常に急速に大きくなり、データの一部がキューに複製された部分に分割され、消費者がそれを処理し続けて無限ループに陥る可能性があるためです。
これを防ぐ方法は、重複がキューに入らないようにすることだと思います。クライアント側でこれを行うことはできません.1時間の間に多くのコアが数十億のデータポイントを処理する可能性があるためです(送信する前に各クライアントにスキャンさせると、速度が大幅に低下します)。これはサーバー側で行う必要があると思いますが、前述したように、データは非常に大きく、重複を効率的に防ぐ方法がわかりません。
私は不可能なことを尋ねているかもしれませんが、試してみようと思いました。どんなアイデアでも大歓迎です。