我正在尝试启动并运行我的 sidekiq 服务器和客户端(使用 Foreman),但无论何时:
bundle exec sidekiq
结果如下:
no implicit conversion of Pathname into String
就像那样,前面没有 Type Error
- 显然跟踪堆栈(如果有帮助,将发布)。它说问题出在 require
方法中的 active_support/dependencies.rb(版本 5.0.0.1)中。在堆栈跟踪的前面,它到达了 sidekiq 的 cli.rb(版本 4.1.2)中的 boot_system
。我不确定这是否是 sidekiq 的一个已知问题,或者我是否缺少某些配置(我已经阅读了大量关于此的教程,其中包括对 sidekiq、puma 和 redis 的配置的全面讨论,但是无济于事)。我正在运行 Ruby 2.3.1 和 Rails 5.0.0.1
sidekiq.yml文件包含(我在这个文件之前报错,包含也没有解决问题):
development:
:concurrency: 5
production:
:concurrency: 20
:queues:
- default
此外,我对在 stackoverflow 上发帖真的很陌生(但过去经常使用它)。任何指导都会很棒!
最佳答案
所以我确实设法让我的 sidekiq 使用 redis 启动并运行。我的问题是其中一个工作脚本有错误......它是在 app/workers 以外的目录中拾取它的(我在调试时将它放在 app/temp 中) - 现在才看到它堆栈跟踪:由于看屏幕时间太长(经典),很明显之前错过了它。仍然很奇怪,错误消息丢失了 Type Error
。
关于ruby-on-rails - Sidekiq、Redis、Rails 和 Ruby - 没有将路径名隐式转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438081/