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问题
我是否正确构建了这个递归神经网络
9 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
6 回答
我是否正确理解Keras中的批次大小?
10 回答
我是否正确理解PyTorch的加法和乘法?
3 回答
我是否正确组织了我的Django应用程序?
10 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
5 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
9 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
3 回答
我是否用python安装了socks模块?
7 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
9 回答
我是否缺少spaCy柠檬化中的预处理功能?
5 回答
我是否缺少给定状态下操作的检查?
3 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
7 回答
我是否能够使用用户输入作为colorama模块中的颜色?
3 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
9 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
3 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
3 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
6 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
4 回答
我是否要使它成为递归函数?
5 回答