在查看了 mongodb 文档和 pymongo API 一段时间后,我仍然不清楚我采取什么路线作为前进的方向(现在比我开始时更加困惑)。我的问题与锁有关……与其说我已经测试过并发现存在主要的并发问题,但我不想在事后遇到它们。
我有一个具有多个函数的 tkinter 脚本,它们都需要访问同一个文档集合,并且它们中的大多数都访问该集合中的同一个文档。
client = MongoClient()
def 1 ():
glob_client = client['ALPHA']['A-Z']
#do work:
"""Also call subprocesses that use the same database document (glob_client) in another script.
There can be 3 -10 instances of this subprocess running, listening to various http streams in a while loop,
collecting data that can come in at 100's of times per second."""
def2 ():
glob_client = client['ALPHA']['A-Z']
...
def32 ():
glob_client = client['ALPHA']['A-Z']
和被调用的子进程(在单独的脚本中),可能有多个实例:
client = MongoClient()
glob_client = client['ALPHA']['A-Z']
while True:
#do work with glob_client; updates, push, pull, reads,
那么,在这种情况下,只在每个函数中使用 client.close() 就足够了吗?
def 1 ():
glob_client = client['ALPHA']['A-Z']
#do work
client.close()
同样在 while 循环中:
while True:
#do work with glob_client; updates, push, pull, reads,
Client.close()
这样就足够了,还是在这种情况下我应该寻找分片?或者我应该回到 SQL !
Mongodb 3.0.6 32 位,pymongo 3.03,python 2.7。