2010-12-28 11 views
17

Czy ktoś próbował debugowania pracownik selera przy użyciu pdb? Ilekroć przerwania napotkaniu (albo uruchamiając celeryd poprzez WPB lub pdb.set_trace()), I hit następujący błąd:Debugowanie celeryd Djcelery za pośrednictwem 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 

Każde rozwiązanie tego?

Odpowiedz

14

Miałem ten sam problem. Spróbuj użyć pilota zdalnego debugera seler za rdb zamiast:

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 

Zobacz user guide (aktualizacja łącza 2017/5).

+2

Link został zmieniony. http://docs.celeryproject.org/en/latest/tutorials/debugging.html –

+1

Link zmienił się ... znowu! http://docs.celeryproject.org/en/latest/userguide/debugging.html – nachopro