[英]How to read the traceback on failed queue (rq) from code?
I have 1 failed job on failed queue.我在失败的队列中有 1 个失败的作业。
$ rq info
failed |█ 1
1 queues, 1 jobs total
As answered by @Byron Ruth, I can get that number this way:正如@Byron Ruth 所回答的,我可以通过这种方式获得该数字:
from rq import Queue
from redis import Redis
q = Queue('failed', connection=Redis())
print len (q.jobs)
On rq-dashboard, I see the traceback:在 rq-dashboard 上,我看到了回溯:
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?如何使用 Python 代码获取此回溯? If that is not possible, any programmatic solution is acceptable (eg via Bash).
如果这是不可能的,任何程序化的解决方案都是可以接受的(例如通过 Bash)。
Not sure whether you have found out the solution.不知道你是否已经找到了解决方案。 You can get the traceback from
exc_info
call.您可以从
exc_info
调用中获取回溯。 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.