grails - Quartz Scheduler以状态发送失败作业的电子邮件通知

标签 grails quartz-scheduler

我有多个在不同时间间隔运行的作业,我的问题是某些作业失败,当我登录Web门户检查作业时我注意到了。有什么方法可以配置,以便在任何作业失败时获得电子邮件警报。我正在使用quartz:1.0-RC9,而我的QuartzConfig.groovy是..

quartz {
autoStartup = true
jdbcStore = false
waitForJobsToCompleteOnShutdown=false
}

environments {
test {
quartz {
  autoStartup = false
}
}
}

最佳答案

没有此类功能,但是您可以使用邮件插件来非常快地完成此操作。

1.)将这样的字符串添加到BuildConfig.groovy中:

 plugins {
   ....
   runtime ":mail:1.0.1"
 }

2.)添加到您的电子邮件和密码Config.groovy:
例如,以下是配置默认发件人以使用Gmail帐户发送的方法:
grails {
   mail {
     host = "smtp.gmail.com"
     port = 465
     username = "youracount@gmail.com"
     password = "yourpassword"
     props = ["mail.smtp.auth":"true",                     
              "mail.smtp.socketFactory.port":"465",
              "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
              "mail.smtp.socketFactory.fallback":"false"]
   }
}

3.)比您可以在您的工作中添加发送电子邮件,例如:
class YourJob {
  static triggers = {
     simple repeatInterval: 5000l // execute job once in 5 seconds
  }

  //Adding service from plugin
 def mailService

 def execute() {
     try{
     //CODE that can fail
     }catch(e){

         mailService.sendMail {                
             to "my@gmail.com"
             subject "Failed"
             html "THIS JOB IS FAILED"
         }


       }
    }
}


您可以将其移动到某些服务(例如MessageService)中,然后执行以下操作:
try{
//JOB CODE THAT CAN FAIL
} catch(e){
 messageService.sendFailedJobEmail()
}

有关使用插件https://grails.org/plugin/mail的更多信息

关于grails - Quartz Scheduler以状态发送失败作业的电子邮件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044870/

相关文章:

grails - Grails以一对一关系创建客户端

grails list.gsp/g :sortableColumn: being able to sort on associated domain objects

asp.net-mvc - 当网页空闲时 Quartz Scheduler 停止工作

grails - 如何在 session 中存储 quartz 作业的结果?

java - 启动 Quartz Scheduler 而不触发触发器

grails - 带有Grails Quartz插件的多个调度程序

tomcat - 在 tomcat 中托管 grails 应用程序

security - Grails Acegi 安全 : Problem with roles and access

hibernate - hibernate 5用Grails搜索3

java - 如何配置 quartz 调度程序占用数据库中存储的作业并在服务器重启时执行?