sql >> Databasteknik >  >> NoSQL >> Redis

Rails anpassad miljö Resque.enqueue skapar inga jobb

några förväntningar först.

Du har en config/resque_config.rb eller liknande som:

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

och en config/resque.yml eller liknande som:

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

integration skulle antingen vara på / kommunicera med en annan server eller använda en annan port. Då skulle du låta den köra sin egen Redis-server så att de två inte överlappar varandra. Jag antar att du inte ville att produktion och integration skulle köa saker till samma plats?




  1. $project:Är det möjligt att komma åt en egenskap för ett uttrycksresultat i bara ett enda steg?

  2. Hur skapar man ett distribuerat lås med Redis?

  3. Applikationscache v.s. viloläge på andra nivåns cache, vilken ska jag använda?

  4. Blockera åtkomst till Redis-nyckel (ServiceStack)