2012-04-27 2 views
1

나는 appharbor에 Redis를 설정하려고합니다. 나는 그들의 지시를 따라 왔고 다시 Booksleeve API에 문제가있다.Appharbor Redis - Booksleeve GetString 예외

   var connectionUri = new Uri(url); 

       using (var redis = new RedisConnection(connectionUri.Host, connectionUri.Port, password: connectionUri.UserInfo.Split(new[] { ':' }, 2)[1])) 
       { 
        redis.Strings.Set(1, "greeting", "welcome to remember your stuff!"); 

        try 
        { 
         var task = redis.Strings.GetString(1, "greeting"); 

         redis.Wait(task); 

         ViewBag.Message = task.Result; 
        } 
        catch (Exception) 
        { 
         // It throws an exception trying to wait for the task? 
        } 
       } 

그러나, 문제는 제대로 문자열을 설정하는 것입니다,하지만 키 값 저장소에서 동일한 문자열을 검색 할 때, 그것은 시간 제한을 던졌습니다 : 여기가 처음 작동하도록 사용하고있는 코드는 작업을 기다리는 동안 예외가 발생합니다. 그러나이 코드는 로컬 redis 서버 연결에서 작동합니다.

내가 API를 잘못 사용하고 있습니까? 아니면이게 Appharbor와 관련된 것입니까?

감사 SqlConnection처럼

답변

1

, 당신은 (그렇지 않으면 메시지가 배달을 위해 대기하는) Open()를 호출해야합니다.

SqlConnection는 달리, 당신은 불까지가 RedisConnection 때마다 당신이 그것을 필요가 없습니다 - 공유, 스레드 안전, 멀티플렉서로 사용하기위한 것입니다 - 단일 연결 즉 어딘가에 개최하고 많은 관련없는 발신자가 사용합니다. 물론 한 가지만하면됩니다!

+0

빠른 응답과 힌트를 보내 주셔서 감사합니다! .. 이제 연결이 작동합니다. 그것은 대기 선을 넘습니다. 하지만 어떤 이유로 작업에. 결과 라인 내가 다음과 같은 :// 오류 처리 데이터 : 중요한 작업이 실패했습니다 : 1 : 선택 ..이 appharbor redis 문제가 무엇입니까? .. 내 로컬 서버에서 데이터를 얻을 수 있을까? –

+2

@DoubleScorpio 2 개의 데이터베이스가 있습니까? 데이터베이스는 0부터 시작합니다. 만약 당신이 오직 1, DB 0을 사용하십시오. –

+0

나는 DB 0으로 설정하고 작동합니다 !!! .. 귀하의 도움에 감사드립니다! ... 나는 단지 클라이언트와 함께 놀고 있었지만 이제는 코드가 재구성 될 것입니다. 그것으로 좋은 무언가를 만들자 :) .. 다시 한번 감사드립니다! –