gpt4 book ai didi

redis - Rails 自定义环境 Resque.enqueue 不创建作业

转载 作者:可可西里 更新时间:2023-11-01 11:45:22 26 4
gpt4 key购买 nike

我正在为几个异步作业使用 Resque。我已经设置了一个自定义环境 integration,它是我的 production 环境的克隆。但是,我的 Resque 作业没有添加到我的 integration 环境中的 Redis

例如,如果我运行以下命令:

$ RAILS_ENV=production rails console
> Resque.enqueue(MyLovelyJob, 1)

我会在 resque-web 中看到作业。

但是,如果我运行以下命令:

$ RAILS_ENV=integration rails console
> Resque.enqueue(MyLovelyJob, 1)

作业没有出现在 resque-web 中。

很明显,我缺少某种配置,我正在努力弄清楚它是什么。

最佳答案

首先没有什么期望。

你有一个 config/resque_config.rb 或类似的:

require 'rubygems'

require 'resque' # include resque so we can configure it
require 'resque/server'
require 'resque_scheduler'
require 'resque_scheduler/server'
require 'yaml'

Resque.redis.namespace = "resque:api"

rails_root = ENV['APP_ROOT'] || (File.dirname(__FILE__) + '/..')
# require File.expand_path(File.join(rails_root,"lib","extensions","resque","worker.rb"))

rails_env = RAILS_ENV if defined? RAILS_ENV
rails_env ||= ( ENV['RAILS_ENV'] || 'development' )

resque_config = YAML.load_file(File.join(rails_root, 'config/resque.yml'))
Resque.redis = resque_config[rails_env]

# IN THIS ORDER
Resque::Scheduler.dynamic = true
Resque.schedule = YAML.load_file(File.join(rails_root, 'config/resque_schedule.yml')) # load the schedule

和一个 config/resque.yml 或类似的:

development: localhost:6379
test: localhost:6379
integration: localhost:6379
staging: localhost:6379
production: localhost:6379

集成 要么在不同的服务器上/与不同的服务器通信,要么使用不同的端口。然后你让它运行它自己的 Redis 服务器,这样两者就不会重叠。我想您不希望生产和集成将事物排队到同一个地方?

关于redis - Rails 自定义环境 Resque.enqueue 不创建作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973967/

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