Можете ли вы использовать Redis вместе со Resque? - PullRequest
2 голосов
/ 15 августа 2011

Я использую Redis To Go на Heroku, и я хотел бы использовать его для хранения некоторых данных вместе с заданиями Resque, так же, как я могу хранить DelayedJobs в той же базе данных Postgres, что и остальные данные моей модели.

Возможно ли это?Хотите кратко объяснить, как Resque хранит рабочие места в Redis?Я новичок в Redis, и хотя на более высоком уровне я понимаю, как он работает, я не знаком с деталями реализации.

Ответы [ 3 ]

5 голосов
/ 15 августа 2011

Да, вы можете.Согласно документации Resque:

Resque имеет установщик redis, которому можно присвоить строку или объект Redis.Это означает, что если вы уже используете Redis в своем приложении, Resque может повторно использовать существующее соединение.

Кроме того, документация для Resque.redis= гласит, что пространство имен принято, чтобы предотвратить столкновения сдругие ваши приложения, работающие в том же экземпляре:

A Строка «имя хоста: порт / пространство имен» (для установки пространства имен Redis)

Ознакомьтесь с разделом «Конфигурация»Resque readme для получения дополнительной информации: https://github.com/resque/resque/blob/master/README.markdown

1 голос
/ 01 октября 2011

да, полностью согласен с другими ответами, Redis можно использовать для других целей, а не только для фоновой обработки.Кстати, Rescue предоставляет простой интерфейс для настройки / настройки / использования / просмотра Redis.

Настройка / Запуск

$ git clone --depth=1 git://github.com/defunkt/resque.git
$ cd resque
$ rake redis:install dtach:install

$ vim config/resque.yml
  "development: localhost:6379"

$ vim config/initializers/rescue.rb
  "rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..'
   rails_env = ENV['RAILS_ENV'] || 'development'

   resque_config = YAML.load_file(rails_root + '/config/resque.yml')
   Resque.redis = resque_config[rails_env]"

$ rake redis:start

Использование

# model
 def user_activity
   a = Resque.redis.lrange "log_" + self.id.to_s, 0, -1
   a.map{|i| JSON.parse(i)}
 end

Просмотр

 $ resque-web

Позволяет просматривать содержимое Redis, а не только фоновую обработку

1 голос
/ 15 августа 2011

Redis - это расширенное хранилище значений ключей, которое используется Resque для хранения данных о заданиях.Точные детали зависят от вашего приложения, однако эти два должны хорошо работать вместе.Пока ваш код не использует списки, которые использует Resque, вы будете золотыми.

...