2016-11-07 5 views
2

У меня 1 неудачная работа на не удалось очереди.Как читать трассировку на неудавшейся очереди из кода?

$ rq info 
failed  |█ 1 

1 queues, 1 jobs total 

Как answered по @Byron Рут, я могу получить это число так:

from rq import Queue 
from redis import Redis 

q = Queue('failed', connection=Redis()) 
print len (q.jobs) 

На RQ-приборной панели, я вижу отслеживающий:

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/rq/worker.py", line 588, in perform_job 
    rv = job.perform() 
    ... 

Как я могу получить эта трассировка с использованием кода Python? Если это невозможно, любое решение командной строки является приемлемым (например, Bash или аналогичный).

ответ

2

Не знаете, нашли ли вы решение. Вы можете получить трассировку от звонка exc_info. Например:

>>> print(get_failed_queue().jobs[0].exc_info) 
Traceback (most recent call last): 
    File "/Users/ubuntu/.venv/lib/python3.5/site-packages/rq/worker.py", line 700, in perform_job 
    rv = job.perform() 
    File "/Users/ubuntu/.venv/lib/python3.5/site-packages/rq/job.py", line 500, in perform 
    self._result = self.func(*self.args, **self.kwargs) 
    File "/Users/ubuntu/foo.py", line 17, in foobar 
    1/0 
ZeroDivisionError: division by zero