Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >芹菜为每一项失败的任务发送邮件

芹菜为每一项失败的任务发送邮件
EN

Stack Overflow用户
提问于 2016-04-10 21:34:34
回答 2查看 2.9K关注 0票数 3

我在我的django应用程序中使用芹菜,我已经设置了芹菜花来监测芹菜的任务。我有设置任务,电子邮件是发送给用户时,他们注册/提交/FP等事件。现在,Flower给了我一个很好的细节,任务和它的状态。现在,对于每一个失败的任务,我想要一封电子邮件发送到我的帐户,这样我就没有每天检查花失败的任务。我在settings.py文件中做了以下配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CELERY_SEND_TASK_ERROR_EMAILS = True 

ADMINS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'noreply@xyz.com'
EMAIL_HOST_PASSWORD = 'xyz123@'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
EMAIL_HOST = 'xyz.abc.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

这些是“从”电子邮件地址的设置。几天前,我的一个团队成员不小心更改了上面email_host的密码,忘了更新设置文件。由于SMTP身份验证错误,任务失败的时间不是太晚。

有没有办法避免这种情况,即使发生SMTP身份验证错误,我也会立即收到芹菜的电子邮件吗?我对此不太确定。

有没有其他工具可以监视我的任务,对于每一个失败的任务,它都会给我发邮件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-11 02:09:52

我发现有一个表用于维护数据库中的任务。因此,我只是简单地创建了一个脚本,它将每小时检查一次失败的任务,记录在表中,如果找到,它会发送一封电子邮件。

script.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!venv/bin/python2

import os
from django.conf import settings

if __name__ == '__main__' and __package__ is None:
    os.sys.path.append(
        os.path.dirname(
            os.path.dirname(
                os.path.abspath(__file__))))

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rest_apis.settings")

import django

django.setup()
from django.core.mail import EmailMessage
from djcelery.models import TaskMeta
from datetime import datetime, timedelta, time


USERS_TO_NOTIFY = ['ops@yopmail.com']
TIME_THRESHOLD_INTERVAL = 60

def send_email(email_subject_line, email_body):
    email = EmailMessage(email_subject_line,
                         email_body,
                         settings.EMAIL_HOST_USER,
                         USERS_TO_NOTIFY
                         )
    email.send()


def main():
    current_time = datetime.now()   # Get Current TimeStamp
    time_threshold = current_time - timedelta(minutes=TIME_THRESHOLD_INTERVAL) # Get 60 minutes past current time stamp
    celery_taskmeta_objects = TaskMeta.objects.filter(status="FAILURE", date_done__gte=time_threshold)

    email_body = "Below are the tasks which failed : "
    if celery_taskmeta_objects.exists():
        for celery_taskmeta in celery_taskmeta_objects:
            print celery_taskmeta.task_id
            email_body += "\n\ntask_id : %s" % celery_taskmeta.task_id
            email_body += "\nstatus : %s" % celery_taskmeta.status
            email_body += "\ndate : %s" % celery_taskmeta.date_done
            email_body += "\ntraceback :"
            email_body += "\n%s\n\n" % celery_taskmeta.traceback
        email_subject_line = '[URGENT] Celery task failure in last %s minutes' % (TIME_THRESHOLD_INTERVAL)
        send_email(email_subject_line, email_body)


main()

现在,在一封电子邮件中,我也得到了一个完整的堆栈跟踪和任务的id。现在我的要求是每小时检查一次,所以我把脚本放在一个crontab中。现在,您可以根据您的基本需求更改时间阈值,并相应地工作。

票数 2
EN

Stack Overflow用户

发布于 2016-04-10 22:06:50

您可以配置Datadog https://www.datadoghq.com/

它可以监视和跟踪您的动态基础设施。如果在生产服务器上发生错误,您将收到一封电子邮件。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36540515

复制
相关文章
[日常] 腾讯云发送邮件失败问题
1. 在腾讯云上的程序发送邮件失败 , 是因为腾讯云封禁了25端口 2.使用telnet测试连接第三方smtp服务的25端口 , 均失败 3.进入腾讯云控制台 , 申请解封25端口 4.解封完成后 ,
唯一Chat
2019/09/10
7.8K0
[日常] 腾讯云发送邮件失败问题
java发送邮件功能,以发送qq邮件为例
问题①: java发送qq邮件出现如下错误的解决方法:      503 Error: need EHLO and AUTH first ! pop.put("mail.smtp.auth", "true");//注意value值不能不设置,并且不能是Boolean类型,应为字符串,否则会报如上所示错误 问题②: Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1 原因:     465端口是为SMTPS(SMTP-ove
用户1215919
2018/02/27
2K0
常见邮件发送失败原因分析以及解决方法是_手机邮箱发送失败
我发到 sina 的邮件会被退回,并提示remote server said: 553 Spam Mail http://mail.sina.com.cn/FAQ.html;错误,怎么办?
全栈程序员站长
2022/11/10
5.1K0
常见邮件发送失败原因分析以及解决方法是_手机邮箱发送失败
为 Confluence 6 配置发送邮件消息
 > 基本配置(General Configuration) > 邮件服务器(Mail Servers)。这里列出了所有当前配置的 SMTP 服务器。
HoneyMoose
2019/01/30
1.7K0
SpringBoot整合异步任务实现发送邮件
“异步”(Asynchronous)与“同步”(Synchronous)相对,异步不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。也就是说,异步永远是非阻塞的(non-blocking)。
宁在春
2022/10/31
8940
SpringBoot整合异步任务实现发送邮件
laravel 定时任务通过队列发送邮件[通俗易懂]
关于laravel发送邮件,请先参考我的另一片文章:laravel sendcloud发送邮件,再继续往下看。
全栈程序员站长
2022/07/12
1.3K0
java发送邮件 发送带附件的邮件
import java.io.File; import java.util.Date; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Sessio
用户7999227
2021/09/19
2.2K0
[Python] Python发送邮件(文本邮件发送)
直接上代码吧 然后采用者直接写好自己的信息就可以运行啦 import smtplib from email.mime.text import MIMEText from email.header import Header mail_host = "smtp.qq.com" #邮箱服务器(这里采用的是QQ的) mail_user = "******@qq.com" #发送者的邮箱地址 mail_pass
Michael阿明
2021/02/19
2.4K0
java 发送邮件添加附件_java发送邮件 发送带附件的邮件详解[通俗易懂]
import javax.mail.internet.InternetAddress;
全栈程序员站长
2022/08/28
2.4K0
python smtplib在linux上发送邮件失败解决方式
之后放在linux上却 /usr/local/python3/lib/python3.7/socket.py
陈灬大灬海
2020/07/03
2K0
[PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix
1. php的mail()函数是可以发送邮件的 , 但是一直就没有测试成功过 , 现在总结一下原因 :
唯一Chat
2019/09/10
1.4K0
[PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix
发送邮件
1.我们通过Python的SMTP对象发送邮件,需要填写邮箱服务器,邮箱账号密码,邮件主题及邮件内容。
清菡
2020/12/02
1.9K0
发送邮件
SpringBoot发送邮件+使用html模板发送邮件
这两天在公司做商城系统有一个业务用到了发送邮件功能 springboot 有spring-boot-starter-mail
@依然范特西
2022/12/12
3K0
Jenkins 设置构建失败发送邮件(学习笔记二十一)
本文是jenkins应用系统文章的一部分,大部分来自工作和学习中的实践,部分内容来自官方文档和网友的文章,引用的文章会在“参考资料”部分附上原始链接,如无意中侵犯您的权利,请联系QQ:46106962,如需要进一步的交流请加入QQ群: (Jenkins学习交流)469536515。转载和使用请注明出处。
用户5760343
2022/05/24
1.7K0
Jenkins 设置构建失败发送邮件(学习笔记二十一)
Jenkins 踩坑(三)| Email 配置与任务邮件发送
这是因为使用 QQ 邮箱登录,需要填入的是 QQ 邮箱的授权码,这是用于登录第三方客户端的专用密码。具体的获取方式可参考:
霍格沃兹测试开发
2022/04/28
4120
jenkins 邮件_邮件发送服务
前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。
全栈程序员站长
2022/09/19
3.1K0
jenkins 邮件_邮件发送服务
轻松发送HTML格式邮件:Spring Boot邮件发送
🏆本文收录于 《Spring Boot从入门到精通》 ,专门攻坚指数提升,2023 年国内最系统+最强(更新中)。
bug菌
2023/10/09
1.3K0
轻松发送HTML格式邮件:Spring Boot邮件发送
Linux下使用Shell为SendGrid Email API 发送邮件
将代码存为shell文件,将上一个文件的echo输出改成执行此文件即可自动推送到邮箱。
子润先生
2021/06/14
1.1K0
python发送邮件
要先在对应的邮箱服务器中开通stmp服务,然后再说上述代码中配置成相应的内容,就可以发送邮件了
会呼吸的Coder
2020/02/17
8780
linux发送邮件命令_java实现邮件发送功能
刚开始我的系统就没有mail服务,使用“yum -y install mailx”安装时有一只报错, 提示“ Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist” 意思是“错误:未能下载repo“appstream”的元数据:无法准备内部镜像列表:镜像列表中没有URL” 后来查看博客找到了原因。CentOS团队从官方镜像中移除CentOS 8的所有包 需要执行以下两行代码
全栈程序员站长
2022/11/01
3.5K0
linux发送邮件命令_java实现邮件发送功能

相似问题

可靠地发送有关芹菜任务成功/失败的邮件

12

SSIS发送邮件任务失败

20

SMTP发送邮件任务失败

11

django用芹菜任务发送电子邮件

14

如何配置芹菜,以便在任务失败时发送电子邮件通知?

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文