我编写了一个程序,可以在每晚的基础上将MongoDB集合与Elasticsearch同步:
command = """python connector.py -m localhost:27017 -t localhost:9200 -d elastic_doc_manager.py --oplog-ts oplogstatus.txt --namespace-set db.collection --dest-namespace-set newIndex"""
subprocess.Popen(shlex.split(command),shell=False).wait()
...do some more stuff...
在上面的方法中,“做更多的东西”永远不会被执行,虽然我知道这个过程已经完成了。如果我将子进程更改为subprocess.call(command)
,无论shell设置如何,那么“做更多的东西”似乎过早发生(在子进程完成之前)。
我已经阅读了文档,以及其他许多涉及类似问题的问题,但我似乎还不能很好地理解这里发生的事情。我错过了很简单的事情。