我有两个客户端(python)操作同一个集合,集合用作池,集合中的每条记录只能在一个客户端中使用。我使用下面的代码来确保它(它不是关键系统,所以可以容忍一点点错误)。
for i in range(100):
record = collection.find_one({"used1":{"$exists":False}})
record["used1"] = True
collection.save(record)
...do sth I want...
但我发现有时两个客户端不同步,本地客户端获取记录,10秒后远程客户端也将相同的记录。
其实如果2个客户端在不到2秒的时间内拿到记录,那是可以容忍的,但是10秒就太长了。
我认为这里存在缓冲区/同步问题,我能做些什么来减少这些问题?