2010-12-28 5 views
17

Est-ce que quelqu'un a essayé de déboguer celeryd worker en utilisant pdb? Chaque fois qu'un point d'arrêt est rencontré (en exécutant celeryd via pdb, ou par pdb.set_trace()), je frappe l'erreur suivante:Débogage de céleryd de 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 

Toute solution à cela?

Répondre

14

J'ai eu le même problème. Essayez d'utiliser débogueur distant rdb de Céleri à la place:

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 

Voir la user guide (lien mise à jour 2017/5).

+2

Le lien a été modifié. http://docs.celeryproject.org/en/latest/tutorials/debugging.html –

+1

Le lien a changé ... encore! http://docs.celeryproject.org/en/latest/userguide/debugging.html – nachopro

Questions connexes