【发布时间】:2022-11-17 12:41:13
【问题描述】:
我正在研究一个想法,如果满足某些条件,我需要发送邮件来通知团队。这种情况可能会持续 30 分钟或 1 小时。但我不想邮箱里塞满连续不断的邮件。由于我们将每分钟安排一次作业,因此邮件将每分钟发送一次。所以我们试图在邮件发送后在特定时间禁用管道并自动再次启用它。
提前致谢。
我试图让这个工作进入休眠状态,但由于它计划每分钟构建一次,因此每分钟都会启动新工作并发送邮件。
//This is scheduled to build every minute * * * * *
`pipeline{
agent {
stages {
stage (check condition){
when
// check conditions
// if everything working fine - ok
else
// send email - this will be sent every minute. I want to avoid mailbox malfunction and just report the issue.
}
}
}
}`
请帮我解决问题。
【问题讨论】:
-
查看使用 email extension 和触发器组合。
-
这里的主要问题似乎是您无法维护条件状态(上次运行时,发送电子邮件时)。因此,也许您可以尝试找出解决方案,例如使用 envinject 将状态维护为环境变量,甚至将详细信息写入文件。
-
@IanW - 我已经检查了你提到的电子邮件扩展,但它们在我的情况下不起作用。
-
我认为您对问题的表述有误。 “发送邮件后尝试在特定时间禁用管道并自动再次启用”,一旦您自行禁用管道,它就不再运行,因此无法自行重新启用。它需要通过外部来源(工作或人)来启用。你可以做的是连续运行你的工作(每分钟)并判断它是否满足发送电子邮件的条件。因此建议电子邮件扩展,它有很多条件。
标签: jenkins cron jenkins-pipeline scheduled-tasks