Sidekiq服务器没有加载配置文件

时间:2013-11-18 21:35:22

标签: ruby sinatra sidekiq

我正在尝试用我的sinatra应用程序设置sidekiq,而我正在使用 使用配置文件启动sidekiq worker以守护进程模式运行时出现问题。

我的项目具有以下结构:

project
- config
-- sidekiq.yml #Sidekiq Config File
- app
-- app.rb #Sinatra Application File
- Rakefile
- Gemfile
- etc.

最终目标是创建一些rake任务来处理所有sidekiq任务。

现在,我只是试图通过命令行让事情正常工作,然后我会通过rake让它工作。

sidekiq.yml

# Sidekiq Configuration
---
development:
  logile: ./log/sidekiq_development.log
  verbose: true
  pidfile: ./tmp/pids/sidekiq.pid
  concurrency: 1
  queues:
    - [household_import, 7]

当我在项目目录中运行此命令时:

  

捆绑exec sidekiq -C'./config/sidekiq.yml'-e'development'-d

我得到以下内容:

You really should set a logfile if you're going to daemonize
/Users/gutter007/git/webapps/project/vendor/bundle/gems/sidekiq-2.16.1/lib/sidekiq/cli.rb:141:in
 `daemonize'
 /Users/gutter007/git/webapps/project/vendor/bundle/gems/sidekiq-2.16.1/lib/sidekiq/cli.rb:39:in
 `parse'
 /Users/gutter007/git/webapps/project/vendor/bundle/gems/sidekiq-2.16.1/bin/sidekiq:7:in
 `<top (required)>'
 /Users/gutter007/git/webapps/project/vendor/bundle/bin/sidekiq:23:in
 `load'
 /Users/gutter007/git/webapps/project/vendor/bundle/bin/sidekiq:23:in
 `<main>'

我的困惑是我在配置文件中设置了日志文件。我的假设是它没有正确地读取或读取cofig文件。

我尝试调整路径,并使用配置文件的完整路径,但它似乎没有改变任何错误消息。我也调整了配置文件本身,假设格式可能已关闭,但没有骰子。

有谁看到我在这里做错了什么?

如果您需要更多信息,请与我们联系。

感谢。

2 个答案:

答案 0 :(得分:10)

我挖掘了sidekiq代码,并调试了我的配置文件问题。

有两个问题:

  1. 我错误拼写了logfile ... doh!
  2. 您需要设置每一行 用冒号(:)来表示值。它将yaml文件拉入 哈希,没有符号,它将无法识别密钥
  3. 所以

    development:
      logfile: ./log/sidekiq_development.log
    

    无效,但

    development:
      :logfile: ./log/sidekiq_development.log
    #notice the ':' infront of the logfile
    

    确实!

    这是我更新的工作日志文件。

    # Sidekiq Configuration
    ---
    development:
      :logfile: ./log/sidekiq_development.log
      :verbose: true
      :pidfile: ./log/tmp/pids/sidekiq.pid
      :concurrency: 1
      :queues:
        - [household_import, 7]
    

答案 1 :(得分:7)

以下命令帮助了我,

  

sidekiq -d -q carrierwave -l sidekiq.log

如果你没有使用'carrierwave'

,你可以省略“-q carrierwave”部分