2010-12-28 1 views
17

Qualcuno ha provato a eseguire il debug di Celeryd Work utilizzando pdb? Ogni volta che un punto di interruzione si incontra (o eseguendo celeryd via PDB, o pdb.set_trace()), mi ha colpito il seguente errore:Debug di celeryd di djcelery via pdb

Error while handling action event. 
Traceback (most recent call last): 
    File "/home/jeeyo/workspace3/uwcr/subscriptions/tasks.py", line 79, in process_action_event 
    func(action_event) 
    File "/home/jeeyo/workspace3/uwcr/subscriptions/tasks.py", line 36, in new_user_email 
    send_registration_email(username, new_user.get_profile().plaintext_password) 
    File "/home/jeeyo/workspace3/uwcr/looers/email.py", line 18, in send_registration_email 
    'Your password from UWCoopRankings', user 
    File "/home/jeeyo/workspace3/uwcr/looers/email.py", line 61, in send_email 
    if isinstance(to, basestring): 
    File "/home/jeeyo/workspace3/uwcr/looers/email.py", line 61, in send_email 
    if isinstance(to, basestring): 
    File "/usr/lib/python2.6/bdb.py", line 46, in trace_dispatch 
    return self.dispatch_line(frame) 
    File "/usr/lib/python2.6/bdb.py", line 65, in dispatch_line 
    if self.quitting: raise BdbQuit 
BdbQuit 

Qualsiasi soluzione a questo?

risposta

14

Ho avuto lo stesso problema. Provare a utilizzare debugger remoto di sedano rdb invece:

from celery import task 
from celery.contrib import rdb 

@task() 
def add(x, y): 
    result = x + y 
    rdb.set_trace() # <- set break-point 
    return result 

Vedere il user guide (Aggiorna collegamento 2017/5).

+2

Il collegamento è stato modificato. http://docs.celeryproject.org/en/latest/tutorials/debugging.html –

+1

Il collegamento è cambiato ... ancora! http://docs.celeryproject.org/en/latest/userguide/debugging.html – nachopro