python MySQLDB查询超时

python MySQLDB查询超时,第1张

python MySQLDB查询超时

@nosklo的基于扭曲的解决方案既优雅又可行,但是如果您希望避免对Twisted的依赖,则该任务仍然可行,例如:

import multiprocessingdef query_with_timeout(dbc, timeout, query, *a, **k):  conn1, conn2 = multiprocessing.Pipe(False)  subproc = multiprocessing.Process(target=do_query,   args=(dbc, query, conn2)+a,    kwargs=k)  subproc.start()  subproc.join(timeout)  if conn1.poll():    return conn1.recv()  subproc.terminate()  raise TimeoutError("Query %r ran for >%r" % (query, timeout))def do_query(dbc, query, conn, *a, **k):  cu = dbc.cursor()  cu.execute(query, *a, **k)  return cu.fetchall()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5632212.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存