I have 1 failed job on failed queue.
$ rq info
failed |█ 1
1 queues, 1 jobs total
As answered by @Byron Ruth, I can get that number this way:
from rq import Queue
from redis import Redis
q = Queue('failed', connection=Redis())
print len (q.jobs)
On rq-dashboard, I see the traceback:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/rq/worker.py", line 588, in perform_job
rv = job.perform()
...
How can I get this traceback using Python code? If that is not possible, any programmatic solution is acceptable (e.g. via Bash).
Not sure whether you have found out the solution. You can get the traceback from exc_info call. For example:
>>> 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With