Ruby side kiq`REQUIRED:无法加载此类文件--PG(LoadError)

qoefvg9y  于 2022-09-21  发布在  Ruby
关注(0)|答案(3)|浏览(84)

我尝试在纯Ruby上构建一个带有一些附加功能的微服务。我使用sidekiq进行作业,使用pg进行数据库连接。

要启动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.rb中尝试了require PG gem。实际上,我在另一个文件中使用它,在这里仅用作示例。

因此,当我尝试运行我的idekiq服务器时,它会引发异常

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

analytic_serv/config/sidekiq.rb:2:inrequire‘:无法加载此类文件--pg(LoadError)`

它适用于我用来创建作业的简单ruby脚本,但当我运行side kiq-server时它不起作用。

求求你,救命。*我做错了什么?我怎么能在这种情况下包括宝石?

uplii1fm

uplii1fm1#

始终使用bundler确保正确设置您的gem:bundle exec ruby script.rbbundle exec sidekiq

dauxcl2d

dauxcl2d2#

尝试将gem 'pg'添加到Gemfile,并通过bundle install安装包。

f3temu5u

f3temu5u3#

无法加载这样的文件意味着,特定的文件不可用。搜索路径bundle show pg

有时,即使宝石不在那里,它也是因为宝石规格而显示出来的。因此,也要删除geSpec并执行bundle install

相关问题