Can*_*Can 22 ruby ruby-on-rails ruby-on-rails-3 sidekiq
我正在使用sidekiq gem在后台运行API调用.我在守护进程中运行sidekiq,如:
bundle exec sidekiq -d
Run Code Online (Sandbox Code Playgroud)
现在我在我的方法中做了一些更改,所以我想重新启动sidekiq.我试图使用以下命令杀死sidekiq:
kill -9 process_id
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我想知道重启sidekiq进程的命令.如果您有任何想法请与我分享.
我也尝试了下面的命令:
sidekiqctl stop /path/to/pid file/pids/sidekiq.pid
Run Code Online (Sandbox Code Playgroud)
hlc*_*lcs 48
开始:
$ bundle exec sidekiq -d -P tmp/sidekiq.pid -L log/sidekiq.log
Run Code Online (Sandbox Code Playgroud)
其中-d
妖魔化,-P
PID文件,-L
日志文件.
停止:
$ bundle exec sidekiqctl stop tmp/sidekiq.pid 0
Sidekiq shut down gracefully.
Run Code Online (Sandbox Code Playgroud)
其中0
是Sidekiq退出的等待秒数.
ale*_*smn 24
所以在你找到proces_id后,使用下面的命令,这将阻止工人获得新的工作,他们将完成现有的工作.
kill -USR1 [PROCESS_ID]
Run Code Online (Sandbox Code Playgroud)
之后你可以杀了他们
kill -TERM [PROCESS_ID]
Run Code Online (Sandbox Code Playgroud)
此外,sidekiq/wiki上有一个关于此的页面,名为Signals.
[编辑]
这是信号页面.
[编辑]
检查视频
为了使守护程序保持运行,您在HardWorker类中肯定应该有一些好的错误处理,但是如果在系统进程中找不到sidekiq运行程序,也可以使用以下命令重新启动它们。
x=`ps aux | grep sidekiq | grep -v grep | awk '{print $2}'`; [ "$x" == "" ] && cd /path/to/deploy && bundle exec sidekiq -d -L /path/to/deploy/log/sidekiq.log -C /path/to/deploy/config/sidekiq.yml -e production
Run Code Online (Sandbox Code Playgroud)
这基本上是使用查找PID ps aux | grep sidekiq | grep -v grep | awk '{print $2}'
,然后将其存储在variable中x
。然后,如果为空,它将运行守护进程sidekiq进程。
您可以让这个人从事某项日常工作。但是,如果您的工作持续失败,那么您肯定会想出原因。
编辑:添加了从cron部署的路径。
归档时间: |
|
查看次数: |
32305 次 |
最近记录: |