簡體   English   中英

如何從代碼中讀取失敗隊列(rq)上的回溯?

[英]How to read the traceback on failed queue (rq) from code?

我在失敗的隊列中有 1 個失敗的作業。

$ rq info
failed       |█ 1

1 queues, 1 jobs total

正如@Byron Ruth 所回答的,我可以通過這種方式獲得該數字:

from rq import Queue
from redis import Redis

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

在 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()
    ...

如何使用 Python 代碼獲取此回溯? 如果這是不可能的,任何程序化的解決方案都是可以接受的(例如通過 Bash)。

不知道你是否已經找到了解決方案。 您可以從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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM