你可以在Resque旁边使用Redis吗?

问题描述 投票:2回答:3

我在Heroku上使用Redis To Go,我想用它来存储Resque作业旁边的一些数据,就像我可以将DelayedJobs存储在与我的其他模型数据相同的Postgres数据库中。

这可能吗?注意简要解释Resque如何在Redis中存储工作?我是Redis的新手,虽然我在更高层次上了解它是如何工作的,但我对实现细节并不熟悉。

ruby-on-rails ruby heroku redis resque
3个回答
5
投票

是的你可以。根据救援文件:

Resque有一个redis setter,可以给它一个字符串或一个Redis对象。这意味着如果您已在应用中使用Redis,Resque可以重复使用现有连接。

此外,Resque.redis=的文档声明接受了命名空间,以防止与在同一实例上运行的其他应用程序发生冲突:

'hostname:port / namespace'字符串(用于设置Redis名称空间)

有关更多信息,请查看Rescue自述文件的“配置”部分:qazxsw poi


1
投票

https://github.com/resque/resque/blob/master/README.markdown是一个高级键值存储,Resque使用它来存储有关作业的数据。确切的细节取决于您的应用程序,但两者应该很好地协同工作。只要您的代码远离使用Resque使用的列表,那么您将是金色的。


1
投票

是的,完全同意其他答案,Redis可用于其他目的,不仅用于后台处理。顺便说一下,R​​escue提供了简单的界面来设置/配置/使用/浏览Redis。

安装/运行

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

它允许您浏览Redis内容,而不仅仅是后台处理

© www.soinside.com 2019 - 2024. All rights reserved.