首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Cron作业中添加失败作业的重试逻辑?

如何在Cron作业中添加失败作业的重试逻辑?
EN

Stack Overflow用户
提问于 2022-06-24 03:35:40
回答 1查看 75关注 0票数 0

我已经用下面的语法安排了一个cron作业,它运行得很好。代码在下面。但我需要添加一个功能,如果工作失败,4小时后重试笔记本。

我在谷歌没有找到解决方案。有人能帮我看看吗?

非常感谢。

代码语言:javascript
复制
PATH=/opt/tljh/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
SHELL=/bin/bash

## test
05 23 * * * papermill ~/a.ipynb ~/a_output.ipynb
05 23 * * * papermill ~/b.ipynb ~/b_output.ipynb
EN

回答 1

Stack Overflow用户

发布于 2022-06-24 03:44:13

克伦根本就不支持这样的东西。您可以将脚本包装到shell脚本中,并添加一个cron作业,以在4小时内进行检查:

(假设您的程序使用错误代码)

代码语言:javascript
复制
PATH=/opt/tljh/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
SHELL=/bin/bash

## test
05 23 * * * if papermill ~/a.ipynb ~/a_output.ipynb; then rm -f /tmp/job_previously_failed; else  touch /tmp/job_previously_failed; fi
05 03 * * * if [ -f /tmp/job_previously_failed ]; then papermill ~/a.ipynb ~/a_output.ipynb; rm -f /tmp/job_previously_failed; fi
05 23 * * * if ~/b.ipynb ~/b_output.ipynb; then rm -f /tmp/job_previously_failed; else  touch /tmp/job_previously_failed; fi
05 03 * * * if [ -f /tmp/job_previously_failed ]; then ~/b.ipynb ~/b_output.ipynb; rm -f /tmp/job_previously_failed; fi

强烈建议您将这些文件移到单独的脚本文件中,而不是在cron中写入所有这些内联文件。很快就会乱糟糟的。

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

https://stackoverflow.com/questions/72738726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档