首页 > 其他分享 >任务异常自动告警

任务异常自动告警

时间:2024-05-18 12:40:29浏览次数:20  
标签:task args celery 自动 mail 告警 异常 id

任务异常自动告警

虽然可以通过界面来监控了,但是我们想要得更多,人不可能天天盯着界面看吧,

如果能实现任务执行失败就自动发邮件告警就好了。这个Celery当然也是没有问题的。

通过钩子程序在异常的时候触发邮件通知

使用示例

from celery import shared_task
import time
from celery import Task
from django.core.mail import send_mail
from django.conf import settings
# 成功失败邮件告警
class SendEmailTask(Task):
    def on_success(self, retval, task_id, args, kwargs):
        info = f'任务成功-- 任务id是:{task_id} , 参数是:{args} , 执行成功 !'
        send_mail('celery任务监控成功告警', info, settings.EMAIL_HOST_USER, ["[email protected]",])

        print('------------成功')

    def on_failure(self, exc, task_id, args, kwargs, einfo):
        info = f'任务失败-- 任务id为:{task_id} , 参数为:{args} , 失败 ! 失败信息为: {exc}'
        send_mail('celery任务监控失败告警', info, settings.EMAIL_HOST_USER, ["[email protected]",])
        print('------------失败')

    def on_retry(self, exc, task_id, args, kwargs, einfo):
        print(f'任务id位::{task_id} , 参数为:{args} , 重试了 !  错误信息为: {exc}')


@shared_task(base=SendEmailTask, bind=True)
def add(a,b):
    time.sleep(1)
    return a+b


@shared_task()
def send_email(mail):
    print(f'给{mail}发送邮件了')
    return '成功'






# celery -A celery_demo worker -l debug -P eventlet
# celery -A celery_demo beat -l debug
# celery -A celery_demo flower --port-5566

标签:task,args,celery,自动,mail,告警,异常,id
From: https://www.cnblogs.com/Hqqqq/p/18199230

相关文章

  • 自动获取随笔链接(用于博客签名或者版权信息)
    今天弄了好久也不知道怎样自动获取每篇文章对应的链接,就在这时,突然发现博客签名里面有一个模板选项,下拉有个转载声明选择框,如下:点完之后,出现了我想要的东西!!这不就是我心心念念、苦苦寻找的自动获取文章链接函数吗?!<p>本文来自博客园,作者:{author},转载请注明原文链接:{post_url......
  • K8S下应用异常卡顿问题的分析与学习
    K8S下应用异常卡顿问题的分析与学习背景周二自己在处理申威服务器的问题时,被同事拉进一个群聊.告知客户现场有一个特殊情况:服务晚上重启,上午速度还可以,但是到了下午就开始变的非常卡顿.因为当时正在车上也看不到具体信息.晚上九点上会进行了一次简单查看.发现......
  • java基础 韩顺平老师的 异常 自己记的部分笔记
    443,异常处理入门 packagecom.hspedu.exception_;publicclassException{publicstaticvoidmain(String[]args){intnum1=10;intnum2=0;//老韩解读//1,num1/num2=10/0//2,当执行到num1/num2,因为num2......
  • nvm 自动化切换项目node版本
    nvm自动化切换项目node版本在一些项目中经常会忘记在readme中写项目运行的版本,而且一点都不工程化。这里给出一些方法让项目切换版本更加顺畅。流程第一步将对应的nvm安装完成,教程很多就不赘述了。第二步在项目根目录下运行命令行node-v>.nvmrc第三......
  • 华为用例自动化
    #-*-encoding:utf-8-*-"""@Time:2024/4/1619:47@Auth:ruqing@File:华为自动化测试.py@IDE:PyCharm@Motto:ABC(AlwaysBeCoding)"""importtimeimportrefromconfigimportInitParam#初始化sonic参数sonic=InitParam().sonic_i......
  • SpringMVC中的异常处理机制
    1.概述SpringMVC提供了基于xml和基于注解的异常处理机制,一般情况下两者都要进行配置,xml异常处理机制主要用于处理xml方式产生的异常,注解异常处理机制主要用于处理基于注解方式产生的异常。2.基于xml方式的异常处理机制<!--配置基于xml的异常映射--><beanid="simpleMapp......
  • spring security 使用过滤器认证登录时,抛出自定义异常
    前情提要最近在做项目的改造,涉及到新增用户的离职冻结状态,当被离职/冻结后,尝试登录系统,则抛出不同的异常代码给前端,前端依据不同的异常代码提示不同的文本。所以需要对项目的认证逻辑简单调整,增加按照不同的登录用户的状态(离职/冻结)判断,如果满足指定状态,则抛出对应的异常代码。......
  • 多线程下使用List中的subList和remove方法产生的 java.util.ConcurrentModificationEx
    在说多线程操作List之前,我们先看下单线程下产生的问题:单线程List<Integer>listA=newArrayList<>();listA.add(1);listA.add(2);listA.add(3);listA.add(4);listA.add(5);listA.add(6);for(Integera:listA){......
  • flex布局文本居中,文本溢出自动换行的方法
    exportconstColoredItem=({item})=>{return(<divclassName={`w-fullflexitems-centerspace-x-1borderrounded`}style={{backgroundColor:item.color+"1a",borderColor:item.color,borde......
  • centos7 设置自动更新时间
    自动更新时间,我这里使用的是ntpdate.从ntpdate手册上看,手册上更建议使用ntpd,以后再学习一些它安装ntpdateyuminstallntpdate时间服务器名称地址???cn.ntp.org.cn阿里云提供的地址ntp2.aliyun.com配置crontab0-59/10****/usr/sbin/n......