我在循环中多次调用外部进程。为了给你一个伪代码: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