私は2つのクライアント(python)に同じコレクションを操作させ、コレクションはプールとして使用され、コレクションのすべてのレコードはクライアントの1つでのみ使用できます。以下のコードを使用してそれを確認しています(重要なシステムではないため、多少のエラーは許容できます)。
for i in range(100):
record = collection.find_one({"used1":{"$exists":False}})
record["used1"] = True
collection.save(record)
...do sth I want...
しかし、2 つのクライアントが同期されない場合があり、ローカル クライアントがレコードを取得し、10 秒後にリモート クライアントも同じレコードを取得することがわかりました。
実際、2 つのクライアントが 2 秒未満でレコードを取得する場合は許容範囲ですが、10 秒では長すぎます。
ここにバッファ/同期の問題があると思います。そのような問題を減らすために何ができますか?