2012-12-28 14 views
6

Esecuzione di Django tramite gunicorn a RDS (AWS mysql), sto vedendo questo errore nei miei ceppi gunicorn:Mysql + django eccezione: "Comandi fuori sincrono, non è possibile eseguire questo comando ora"

Exception _mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now") in <bound method Cursor.__del__ of <MySQLdb.cursors.Cursor object at 0x690ecd0>> ignored 

Non riesco ancora a riprodurlo in modo affidabile, né posso rintracciare il codice sottostante che lo sta causando.

sto usando cursori prime in alcuni punti, seguendo questo schema:

cursor = connections['read_only'].cursor() 
sql = "select username from auth_user;" 
cursor.execute(sql) 
rows = cursor.fetchall() 
usernames = [] 
for row in rows: 
    usernames.append(row[0]) 

In alcuni punti ho subito riutilizzare il cursore per eseguire un'altra query)/fetchall) modello ((. A volte no.

Uso anche query di gestione non elaborate in alcuni punti.

Non sto chiudendo esplicitamente i cursori, ma non credo che dovrei.

Diverso da quello: non sto utilizzando alcuna stored procedure, nessun parametro init_command, né qualsiasi altra cosa indicata nelle altre risposte che ho visto postate qui.

Qualsiasi idea o suggerimento su come eseguire il debug sarebbe apprezzato.

+0

E 'questa eccezione si causando problemi reali altro che presentarsi nel registro? – Air

+0

Possibile duplicato di [Python, "comandi non sincronizzati, non è possibile eseguire questo comando ora"] (http://stackoverflow.com/questions/11583083/python-commands-out-of-sync-you-cant- run-this-command-now) – e4c5

risposta

-3

Partenza https://code.djangoproject.com/ticket/17289

avrete bisogno di fare qualcosa di simile:

while cursor.nextset() is not None: 
    if verbose:               
     print "rows modified %s" % cursor.rowcount 
+0

la domanda non menziona affatto le stored procedure (come fa il biglietto che si riferisce). –

Problemi correlati