当sidekiq崩溃时,如何重新启动它?

时间:2019-02-06 01:21:12

标签: ruby-on-rails sidekiq restart sidekiq-monitor crush

我通过

开始了sidekiq
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production

有时候,Sidekiq被压碎,忙碌= 0,排队> 0。

如何设置sidekiq在粉碎/停止后重新启动?

1 个答案:

答案 0 :(得分:0)

您可以使用一些自动化程序包,也可以编写自己的bash脚本来实现这一目的。

我个人更喜欢编写自己的脚本,所以让我解释一下:

  1. 编写一个脚本,该脚本在尚未运行sidekiq 的情况下执行
  2. 写一个cronjob每分钟执行一次脚本

请注意,此方法不是即时的,这意味着您可能要停机1分钟,因为cronjob每分钟都会工作。因此,如果您的项目对此很敏感,则可能要使用monitgod之类的过程管理工具之一。

您的bash脚本应包含您的命令

bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production

但是,如果要将脚本存储在项目目录之外,请确保使用绝对路径。

Here是有关编写Shell脚本以检查该进程是否已经存在的有用主题。

要每分钟运行一次脚本,请执行以下操作:

  1. 转到您的终端机
  2. 键入crontab -e
  3. 追加* * * * * /bin/bash -l -c 'cd /PATH/TO/YOUR/DIR && sh SCRIPTNAME.sh'
  4. 保存并退出编辑器

这样做,您是在告诉计算机每分钟执行一次脚本。 通常,人们倾向于只将* * * * * /path/to/script.sh写入他们的crontab,但这在某些情况下会失败。

希望这会有所帮助。