我在循環中多次調用外部進程。爲了給你一個僞代碼:Python循環同步
for i in xrange(1, 100):
call external proc which inserts a row into a table
這裏的問題是,每當外部進程被調用時,它運行在一個單獨的線程,這可能需要很長時間才能運行任何金額。所以,python會繼續執行。這會導致插入運行到行鎖並阻止插入。
什麼是等待的過程中完成的,在下列約束的理想方法:
- 我不能修改外部過程的工作方式。
- 我知道我可以,但我不想用黑客,像thread.sleep
- 我無法修改任何數據庫設置。
調用外部PROC的代碼是:
def run_query(query, username, password):
try:
process = subprocess.Popen("<path to exe> -u " + username + " -p "+ password +" " + query,
shell = True,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
result, error = process.communicate()
if error != '':
_pretty_error('stderr', error)
except OSError, error:
_pretty_error('OSError', str(error))
return result
你能告訴我們「調用外部過程的插入到表'的Python代碼嗎? – NPE 2013-03-04 09:03:05
添加到我原來的問題 – Vegetto 2013-03-04 09:10:36