我通过以下方式启动了sidekiq
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production
有时,Sidekiq 被压垮了,busy=0 并且 enqueue > 0。
如何设置 sidekiq 在压碎/停止后重新启动?
我通过以下方式启动了sidekiq
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production
有时,Sidekiq 被压垮了,busy=0 并且 enqueue > 0。
如何设置 sidekiq 在压碎/停止后重新启动?
您可以使用一些自动化软件包,或编写自己的 bash 脚本来执行此操作。
我个人更喜欢编写自己的脚本,所以让我解释一下:
请注意,此方法不是 Instant,这意味着您可能会停机长达 1 分钟,因为 cronjob 每分钟都在工作。因此,如果您的项目对此敏感,您可能希望使用其中一种流程管理工具,例如monit
或god
。
你的 bash 脚本应该包含你的命令,
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production
但是,如果要将脚本存储在项目目录之外,请确保使用绝对路径。
这是有关编写 shell 脚本以检查进程是否已存在的有用主题。
要每分钟运行一次脚本,请执行以下操作:
crontab -e
* * * * * /bin/bash -l -c 'cd /PATH/TO/YOUR/DIR && sh SCRIPTNAME.sh'
通过这样做,您告诉您的计算机每分钟执行一次您的脚本。通常人们更喜欢只写到* * * * * /path/to/script.sh
他们的 crontab,但在某些情况下这会失败。
希望这可以帮助。