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



我通过启动了sidekiq

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

有一段时间,Sidekiq崩溃了,忙=0,排队>0。

如何设置sidekiq在崩溃/停止后重新启动?

您可以使用一些自动化包,或者编写自己的bash脚本来实现这一点。

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

  1. 编写一个脚本,如果sidekiq尚未运行,则执行该脚本
  2. 每分钟编写一个cronjob来执行该脚本

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

你的bash脚本应该包含你的命令

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

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

这里有一个关于编写shell脚本以检查进程是否已经存在的有用主题。

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

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

这样做,就是告诉计算机每分钟执行一次脚本。通常,人们更喜欢只写* * * * * /path/to/script.sh而不是他们的crontab,但这在某些情况下是失败的。

希望这能有所帮助。

最新更新