0

解決したら、すべての greenlet は、同じ接続を共有するのではなく、1 つの接続を持つ必要があります。

MySQL データベースに大量のデータを挿入したいと考えています。私geventはインターネットからデータをダウンロードし、そのデータを MySQL に挿入していました。MySQL async に挿入するumysqldbを見つけまし た。ただし、次のエラーが表示されます: Mysql Error 0: Concurrent access in query method.

私のコードは次のとおりです。

def insert_into_mysql(conn,cur,pid,user,time,content):
    try: 
        value=[pid,user,time,content] 
        #print 'value is', value
        print 'hi'
        cur.execute('insert into post(id,user,time,content) values(%s,%s,%s,%s)',value) 
        print 'after execute'
        conn.commit() 
    # except MySQLdb.Error,e: 
    except umysqldb.Error,e: 
        print "Mysql Error %d: %s" % (e.args[0], e.args[1]) 

insert_into_mysqlに含まれていdownload_contentます:

while len(ids_set) is not 0:
    id = ids_set.pop()
    print 'now id is', id
    pool.spawn(download_content,conn,cur,int(id))
    r.sadd('visited_ids',id)
    pool.join()
4

1 に答える 1