youbo1 发表于 2018-8-9 07:16:52

python 多线程插入mysql

#!/usr/bin/python  from __future__ import division
  from socket import gethostname;
  import threading
  import sys
  import os
  import MySQLdb
  class threader(threading.Thread):
  def __init__(self,method):
  threading.Thread.__init__(self)
  self.tx =
  self.method = method
  def run(self):
  run_insert()
  def run_insert():
  sql = "INSERT INTO table (`id`,`A`,`B`,`C`) VALUES (NULL,'0','0','0');")
  try:
  cursor.execute(sql)
  db.commit()
  except:
  print "insert failed"
  def init_thread(): backgrounds = []
  for db in connections:
  logger("Spawning thread: %s"%(db),"d")
  quant = tx / THREADS
  background = threader(method,quant,db)
  background.start()
  backgrounds.append(background)
  for background in backgrounds:
  background.join()
  def main():
  try:
  init_thread()
  except:
  print "failed to initiate threads"
  sys.exit(0)
  if __name__ == "__main__":
  mysql_host = "localhost" #default localhost
  mysql_pass = "pass" #default dbbench
  mysql_user = "user" #default dbbench
  mysql_port = 3306 #default 3306
  mysql_db = "schema" #default dbbench
  threads = 4 #must be INT not STR #create connection pool
  connections = []
  for thread in range(THREADS):
  try:
  connections.append(MySQLdb.connect(host=mysql_host, user=mysql_user, passwd=mysql_pass, db=mysql_db, port=mysql_port))
  except MySQLdb.Error, e:
  print "Error %d: %s"%(e.args, e.args)
  sys.exit (1)
  main()
页: [1]
查看完整版本: python 多线程插入mysql