sql >> データベース >  >> RDS >> Mysql

PythonMySQLDBクエリタイムアウト

    @noskloのツイストベースのソリューション エレガントで実行可能ですが、ツイストへの依存を避けたい場合でも、タスクは実行可能です。例:

    import multiprocessing
    
    def 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()
    


    1. MySQLでのバイナリ値の比較

    2. mysql_real_escape_string()の使用中にエラーが発生しました

    3. PHPのIN句を使用したクエリでプリペアドステートメントを使用する方法

    4. T-SQLを使用して2つの整数値を除算してfloat結果を取得するにはどうすればよいですか?