7

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

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

我告诉 Sidekiq 在 config.yml 文件中创建一个 pid 文件:

#/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 文件呢?

4

2 回答 2

8

尝试用这个替换那个绝对路径:

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

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

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

于 2013-01-16T23:05:53.057 回答
6

要使用 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

于 2013-05-04T16:13:10.880 回答