Sidekiq 不创建 PID 文件



为了阻止Sidekiq,我需要使用:

$bundle exec sidekiqctl stop /Users/me/Documents/sites/some_site/tmp/pid/sidekiq.pid 20

我告诉Sidekiq在配置中创建一个pid文件。yml文件:

#/Users/me/Documents/sites/some_site/config.yml
:pidfile: /Users/me/Documents/sites/some_site/tmp/pids/sidekiq.pid
:concurrency: 25

并告诉Sidekiq这个配置文件在哪里使用:

$ bundle exec sidekiq -C /Users/me/Documents/sites/some_site/config.yml

然而,当我运行Sidekiq时,它不创建.pid文件,所以我不能停止它。那么为什么它不创建一个.pid文件呢?

尝试将绝对路径替换为:

:pidfile: ./tmp/pids/sidekiq.pid

第二,确保将运行sidekiq的用户具有适当的写权限来写入该目录。您可以临时chmod 777来测试是否存在权限问题。

下面是Sidekiq的一个示例配置文件。确保您也指定了一个队列。https://github.com/mperham/sidekiq/blob/master/examples/config.yml

要使用pidfile,应该将sidekiq作为守护进程启动。在您的rails根目录下,使用以下命令启动sidekiq:

bundle exec sidekiq -d -e development

您可以用适当的rails环境代替开发。

您还应该在sikekiq配置(config/sidekiq.yml)中指定一个日志文件。例:

concurrency: 5
development:
  pidfile: tmp/pids/sidekiq_development.pid
  logfile: log/sidekiq_development.log
beta:
  pidfile: /var/run/sidekiq_beta.log
  logfile: log/sidekiq_beta.pid
staging:
  pidfile: /var/run/sidekiq_stating.pid
  logfile: log/sidekiq_staging.log
production:
  pidfile: /var/run/sidekiq_production.pid
  logfile: log/sidekiq_production.log
  concurrency: 50

如果你在Debian上,你需要一个启动脚本,你可以使用这个Gist,我放在Github上:https://gist.github.com/alain75007/5517948

相关内容

  • 没有找到相关文章

最新更新