2011-08-15 4 views
2

저는 Heroku To Heoku를 사용하고 있습니다. 나머지 모델 데이터와 동일한 Postgres 데이터베이스에 DelayedJobs를 저장할 수있는 것처럼 Resque 작업과 함께 일부 데이터를 저장하는 데 사용하고 싶습니다.Resque와 함께 Redis를 사용할 수 있습니까?

이것이 가능합니까? Resque가 Redis에 어떻게 일자리를 저장하는지 간단히 설명 할 수 있습니까? Redis는 처음이지만, 어떻게 작동하는지 상위 레벨에서 알지만, 구현 세부 사항에 익숙하지 않습니다.

답변

5

예, 가능합니다. Resque 문서에 따르면 :

Resque에는 문자열 또는 Redis 개체를 지정할 수있는 redis setter가 있습니다. 즉, 앱에서 이미 Redis를 사용하고 있다면 Resque는 기존 연결을 다시 사용할 수 있습니다.

A '호스트 이름 : 포트/네임 스페이스'

또한, Resque.redis= 설명서에 네임 스페이스가 동일한 인스턴스에서 실행되는 다른 응용 프로그램과 충돌 방지하기 위해, 수락한다고 문자열 (설정 레디 스 네임 스페이스)

체크 아웃 자세한 내용은 Resque 읽어보기의 "구성"섹션 : https://github.com/resque/resque/blob/master/README.md

+0

좋아요, 그래서 저는 고유 한 네임 스페이스를 부여 할 필요가 있습니다. 레디 스는 다른 레코드들과 혼동하지 않을 것입니다, 네? – coreyward

+0

개인적으로 이것은 내 자신의 대답보다 더 깨끗한 해결책이라고 생각합니다. 네임 스페이스를 사용하면 관심사를 분리하고 일반적으로 코드를 더 나은 상태로 유지할 수 있습니다. –

1

Redis은 작업에 대한 데이터를 저장하기 위해 Resque에서 사용하는 고급 키 값 저장소입니다. 정확한 세부 정보는 응용 프로그램에 따라 다르지만 두 항목이 함께 잘 작동해야합니다. Resque가 사용하는 목록을 사용하지 않고 코드가 사용되는 한 황금색이됩니다.

+0

그게 내가 어떻게 해야할지 궁금 하네. 레스 키가 레디 스리스트를 사용한다고 가정하고는 있지만, 실제로 레게를 만지는 것을 피하는 방법이나 이것에 액세스하는 방법을 모른다. 도움? – coreyward

+0

오! 음, 응용 프로그램에 따라 달라집니다. Resque readme에서 예제를 살펴보면 대기열은'@queue = : file_serve'를 사용하여 설정됩니다. Redis에서는이 데이터가 목록과 동일한 이름으로 저장됩니다. –

1

예, 다른 답변과 완전히 일치하는 Redis는 백그라운드 처리뿐만 아니라 다른 용도로도 사용할 수 있습니다. 그런데 Rescue는 Redis 설치/구성/사용/찾아보기에 쉬운 인터페이스를 제공합니다.

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

찾아

$ 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 

사용을 실행

설정/

$ resque-web 

그것은 당신이 레디 스 콩트를 탐색 할 수 있습니다 nt뿐만 아니라 배경 처리

관련 문제