How to handle MySQL connection(s) with Python multithreading

前端 未结 3 1493
暖寄归人
暖寄归人 2021-02-14 10:56

I have a main Python script which connects to a MySQL database and pulls out few records from it. Based on the result returned it starts as many threads (class instances) as man

3条回答
  •  庸人自扰
    2021-02-14 11:19

    Looks like mysql 5.7 does support multithreading.

    As you tried previously - absolutely make sure to pass the connection within the def worker(). defining the connections globally was my mistake

    Here's sample code that prints 10 records via 5 threads, 5 times

    import MySQLdb
    import threading
    
    
    def write_good_proxies():    
        local_db = MySQLdb.connect("localhost","username","PassW","DB", port=3306 )
        local_cursor = local_db.cursor (MySQLdb.cursors.DictCursor)
        sql_select = 'select http from zproxies where update_time is null order by rand() limit 10'
        local_cursor.execute(sql_select)
        records = local_cursor.fetchall()
        id_list = [f['http'] for f in records]
        print id_list
    def worker():
        x=0
        while x< 5:
            x = x+1
            write_good_proxies()
    
    threads = []
    
    
    for i in range(5):
        print i
        t = threading.Thread(target=worker)
        threads.append(t)
        t.start()
    

提交回复
热议问题