EventMachine を介して WebSockets を使用して Ruby でサーバーを構築しています。
ユーザー Carl が Car を要求したとします。
ID「7」の車が CarManager に要求されます。CarManager は Car インスタンスを作成し、Car は Mongo Database (id が提供された) から自身をロードします。車「7」は、Carl または他の誰かが使用または要求し続ける限り、キャッシュのように CarManager に保存されます。次に、Car が WebSocket を介して、具体的には Carl に送信されます。カールの WS をどこかに保管しました。
たとえば、レニーとカールの 2 人のユーザーが「正確に」同時に車の ID「7」を要求した場合はどうなるでしょうか。CarManager は、どちらの場合も Car 7 のキャッシュされたバージョンを見つけることができないため、データベースから 2 回フェッチしてインスタンス化するか、またはこれら 2 つの WebSocket 要求のいずれかが最初に処理され、次に 2 番目の要求がキャッシュされたバージョンを使用します。バージョン?
WebSocket の非同期処理全体が、私を少し混乱させました。これについての洞察をありがとう!