虽然while循环是cronjob替代品的好习惯

时间:2015-06-29 15:43:48

标签: ruby

我想将以下任务作为守护进程(无限循环)

运行

每6:00和12:00重新启动docker容器及其任务

while true
    docker-compose up
    docker exec EZUSer_star_1 ruby star/star.rb&
    docker exec EZUSer_tiger_1 ruby tiger/tiger.rb&
    BUSY_WAITING_HERE except if 6:00 or 12:00 then just keep going
    docker-compose down
end

是否有任何建议保证上述工作可以持续数月或数年?

我不想用cron

来做

我需要应用级cronjob-like

是否有任何Ruby DSL或库可以让我更轻松或更健壮地完成这种工作。

2 个答案:

答案 0 :(得分:0)

如果您正在寻找Ruby调度程序,Rufus Scheduler是我所知道的最好的。

https://github.com/jmettraux/rufus-scheduler

答案 1 :(得分:0)

在永久循环中运行它可能不是一个好主意。一般来说,糟糕的事情总是发生在表现良好的过程中(如果没有释放所有资源,那么事情会导致处于肮脏状态的故障无法恢复)。

如果你想继续,请确保你有一些东西(外部)检查进程是否正在运行并重新启动它(supervisord / monit / etc)。

相关问题