gpt4 book ai didi

ruby-on-rails - Rails + Sidekiq : Sidekiq running in wrong environment

转载 作者:行者123 更新时间:2023-12-03 15:57:27 29 4
gpt4 key购买 nike

我有一个使用 Capistrano 部署的 Rails 3 应用程序。我最近添加了 Sidekiq。它在我的开发中运行良好。我同时主持 stagingpreview在同一台服务器上,它的预览无法正常运行。当我在预览时触发工作器时,它会进入暂存状态并访问暂存数据库。我是否缺少在同一台服务器上共存 2 个 sidekiq 进程的配置?

这是我的 deploy.rb:

require "bundler/capistrano"
require 'sidekiq/capistrano' #<-- sidekiq

load "lib/deployer/deployer.rb"
set :application, "myapp"
set :scm, :git
set :repository, ...
set :scm_passphrase, ""
defaults
global_defaults
set :stages, ["staging", "preview"]

task :staging do
set :rails_env, "staging"
set :user, "deployer"
server "myserver.com", :app, :web, :db, :primary => true

defaults
end

task :preview do
set :rails_env, "preview"
set :user, "deployer"
server "myserver.com", :app, :web, :db, :primary => true

defaults
end

这是不一致的。在预览中,我只是做了一个触发 worker 的 Action ,4 次它进入了暂存状态(我可以在日志和控制台中看到),还有 1 次它像预期的那样点击预览。

我错过了什么吗?

最佳答案

我认为您正在寻找的解决方案与命名空间相关。

https://github.com/mperham/sidekiq/wiki/Advanced-Options#wiki-using-sidekiqs-configure-blocks

这就是我在初始化程序中使用的内容。

Sidekiq.configure_server do |config|
config.redis = { url: 'redis://localhost:6379/0',
namespace: "sidekiq_#{Rails.application.class.parent_name}_#{Rails.env}".downcase }
end

Sidekiq.configure_client do |config|
config.redis = { url: 'redis://localhost:6379/0',
namespace: "sidekiq_#{Rails.application.class.parent_name}_#{Rails.env}".downcase }
end

关于ruby-on-rails - Rails + Sidekiq : Sidekiq running in wrong environment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711485/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com