Python中文
首页
教程
问答
标签
搜索
登录
注册
Huey任务队列句柄仅在上次重试时出错&检索异常回溯
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>目前,在my<code>tasks.py</code>中设置此代码段,以便在任务失败时<code>huey</code>向Django项目的管理员发送电子邮件:</p> <pre><code>from django.core.mail import mail_admins from huey import signals from huey.contrib import djhuey as huey @huey.signal(signals.SIGNAL_ERROR) def task_error(signal, task, exc): subject = f'Task [{task.name}] failed message = f"""Task ID: {task.id}' Args: {task.args} Kwargs: {task.kwargs} Exception: {exc}""" mail_admins(subject, message) </code></pre> <p>这将导致以下(示例)电子邮件主题</p> <pre><code>[Django] Task [test_task] failed </code></pre> <p>和机构:</p> <pre><code>Task ID: 89e4bfb3-3cd3-4d6f-8693-68874caf21ec Args: (123,) Kwargs: {} Exception: division by zero </code></pre> <p>这是相当圆滑,但。。。问题:</p> <ol> <li>现在,每当任务失败(包括重试)时都会触发此操作。我希望它只在所有重试失败的情况下发送。因此,如果一个任务有<code>retries=2</code>,我现在会收到3封电子邮件(原始错误+2次重试)。如何让它仅在上次重试时发送电子邮件</李> <li>有没有办法打印异常的<code>exc</code>回溯</李> </ol> <p>另外,我尝试通过Django项目日志设置它,但是这种方法提供了更细粒度的控制,所以我对它很满意</p> <h2>更新</h2> <p>基于@Adam Chainz&;的模块更新@科利弗的答案(都是正确的)现在看起来像:</p> <pre><code>import traceback from django.core.mail import mail_admins from huey import signals from huey.contrib import djhuey as huey @huey.signal(signals.SIGNAL_ERROR) def task_error(signal, task, exc): if task.retries > 0: return subject = f'Task [{task.name}] failed' message = f"""Task ID: {task.id} Args: {task.args} Kwargs: {task.kwargs} Exception: {exc} {traceback.format_exc()}""" mail_admins(subject, message) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>一号。我想你可以查一查<code>task.retries</code></p> <p>二号。使用<a href="https://docs.python.org/3/library/traceback.html#traceback.format_exception" rel="nofollow noreferrer">traceback.format_exception</a></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django restfram生成PDF
8 回答
无法使用Django Rest框架发送压缩的gzip数据
2 回答
无法使用Django rest框架进行身份验证(请求用户=匿名用户)
6 回答
无法使用Django、Python和JavaScrip触发onclick函数
8 回答
无法使用Django.views.generic.View保存表单
7 回答
无法使用Django(python 2.7,OS X 10.11.1)
2 回答
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
7 回答
无法使用Django\u mssql\u后端迁移到外部hos
6 回答
无法使用Django&Python3.4连接到MySql
8 回答
无法使用Django+nginx上载媒体文件
1 回答
无法使用Django1.6导入名称模式
8 回答
无法使用Django1.7和mongodb登录管理站点
7 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
8 回答
无法使用Djangockedi验证CBV中的字段
9 回答
无法使用Djangocketditor上载图像(错误400)
8 回答
无法使用Djangocron进行函数调用
5 回答
无法使用Djangofiler djang上载文件
6 回答
无法使用Djangokronos
5 回答
无法使用Djangomssql provid
10 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答