2

外部システムから継続的に株価を受け取るアプリケーションがあります。

価格は、stockID によってキー設定されます。

価格が到着すると、ブロッキング キューに送られます。

このキューから消費して処理し、価格をキャッシュ (在庫 ID と価格のハッシュマップ) に入れるスレッドのプールがあります。

私が気になるのは、キューに重複する株式 ID の価格がある場合、スレッドがこれらを処理するときに、新しい価格の後に古い価格がキャッシュに書き込まれる可能性があることです。

とにかくこのシナリオを回避する方法はありますか?

最新のものが最後に処理されるようにするにはどうすればよいですか?

4

1 に答える 1

1

自動的にインクリメントされるシーケンス番号を使用して、受信するすべての価格更新にタグを付けることができます。キャッシュに書き込むとき、シーケンス番号がその在庫のキャッシュに既にあるものよりも小さいすべての更新を削除できます。

または、株式ユニバースをスレッド間で分割することもできます。つまり、特定の株式の更新は常に同じスレッドによって処理されます。

于 2013-03-07T07:04:21.167 に答える