Infinte循环与cron作业



我有一个上传服务,需要每5分钟运行一次,它肯定在5分钟内完成,所以从来没有两个并行会话。

想知道什么是运行这个的好策略,要么将其安排为主机上的cron作业,要么启动一个具有无限循环的go程序来执行程序并休眠(Golang:实现cron/在特定时间执行任务(

如果您的任务是…

  • 在Unix上
  • 独自一人
  • 定期
  • 具有可接受的启动时间

cron将比仅为一个服务滚动自己的调度程序更好。它将保证流程始终在正确的时间运行,并具有基本的错误报告。无需添加看门狗,以防您的无限循环出现错误,cron将在5分钟后再次运行该进程。

如果cron不足,请先查看其他作业调度程序,然后再滚动自己的作业调度程序。

我有一个上传服务,需要每5分钟运行一次,它肯定在5分钟内完成,所以从来没有两个并行会话

这是著名的遗言。我建议添加某种形式的锁定。例如,将PID写入/var/run中的一个文件,并检查该进程是否正在运行。Go甚至还有一个小的pidfile库。

看看Systemd,您可以使用计时器执行脚本,并设置脚本的最大执行时间。

https://wiki.archlinux.org/index.php/Systemd/Timers

最新更新