2014-01-16 3 views
1

호스트 집합에 대해 작업을 실행하는 spymemcached 클라이언트가 있습니다. 나는 수술을받을 때 다음과 같은 것을 할 수 있다는 것을 알았다 :Spymemcached, 작업 및 연결 팩토리의 시간 초과 차이점

Future<Object> result = client.asyncGet(key); 
Object data = result.get(timeoutmillis, TimeUnit.MILLISECONDS); 

이것은 다른 무엇인가?

ConnectionFactoryBuilder은 ConnectionFactory에 불과 빌더 :

ConnectionFactoryBuilder cfb = new ConnectionFactoryBuilder(); 
cfb.setOpTimeout(timeoutmillis); 

답변

1

나는이 질문에 전 정말 오랜 시간이 요구되었다 ...하지만 여전히 사람이 대답을해야하는 경우 것을 알 수있다. ConnectionFactory에는 memcached와 클라이언트를 설정하는 데 사용되는 및 opTimeout은 우리가이 빌더를 통해 설정할 수있는 매개 변수 중 하나입니다 :이 timeoutmillis는 선물에 시간 제한으로 클라이언트로 전송되고 사용됩니다

cfb.setOpTimeout(timeoutmillis); 

그 랩 memcached를 클라이언트 내부의 비동기 작업 보시다시피 memcached 클라이언트에서 사용할 수있는 비동기 및 동기 버전의 메소드 쌍 (예 : asyncGetget)이 있습니다. asyncGet은 비동기 코드가 포함 된 자체 타임 아웃과 함께 사용할 수있는 미래의 객체를 반환하지만 get은 클라이언트 내부의 모든 미래의 메카닉을 제거하고 노출되지 않는 내부의 미래 객체로부터 결과를 얻기 위해 opTimeout을 타임 아웃으로 사용합니다 우리.

그래서 cfb.setOpTimeout(timeoutmillis)의 사용은 클라이언트에 모든 비동기 작업을 처리 위임 등 우리가 get, getBulk 같은 간단한 방법을 사용하여 우리의 코드베이스를 단순화