ruby​​ sidekiq`require':无法加载这样的文件 - pg(LoadError)

问题描述:

我尝试在纯红宝石上构建微服务并增加了一些功能。我使用sidekiq作为作业,而pg作为数据库连接。ruby​​ sidekiq`require':无法加载这样的文件 - pg(LoadError)

起动Sidekiq服务器我使用默认的设置和代码:

# ./config/sidekiq.rb 

require 'sidekiq' 
require 'pg' # This doesn't work with "`require': cannot load such file -- pg (LoadError)" 
require_relative '../jobs/location_jobs/collect_job' # here is my job locates 

# If your client is single-threaded, we just need a single connection in our Redis connection pool 
Sidekiq.configure_client do |config| 
    config.redis = { url: 'redis://localhost:6379/0', namespace: 'analytic_serv', size: 5 } 
end 

# Sidekiq server is multi-threaded so our Redis connection pool size defaults to concurrency (-c) 
Sidekiq.configure_server do |config| 
    config.redis = { url: 'redis://localhost:6379/0', namespace: 'analytic_serv' } 
end 

正如你可以看到我尝试sidekiq.rbrequire PG宝石。实际上,我在另一个文件中使用它,并仅在此处使用它。

所以,当我尝试运行我的sidekiq服务器就抛出一个异常

bundle exec sidekiq -r ./config/sidekiq.rb -C ./config/sidekiq.yml 

analytic_serv/config/sidekiq.rb:2:in要求:不能加载这样的文件 - 皮克(LoadError)`

它的工作原理对于简单的ruby脚本,我用它来创建工作,但在运行sidekiq-server时它不起作用。

请帮忙。我究竟做错了什么? 如何在这种情况下包括宝石?

感谢。

+0

您确定'pg' gem已安装在机器上吗? – engineersmnky

+0

当然!当我创造工作时,我使用它来设置数据。和我的其他Rails项目 –

+0

它在ruby脚本中工作,但不幸的是,它并没有帮助,在sidekiq服务器文件 –

尝试增加gem 'pg'Gemfile,并与bundle install安装。

+0

谢谢。有用。 –

始终使用捆扎机,以确保您的宝石设置正确:bundle exec ruby script.rbbundle exec sidekiq

+0

。 –