2014-10-30 4 views
0

Azure 큐에 연결된 두 개의 소비자 (다른 응용 프로그램)가 있습니다. 나는 ReceiveAndDelete 또는 PeekLock 메시지 중 소비 중 일 수 있습니다. 또는 abandon() 메시지입니다. Ref : http://msdn.microsoft.com/en-us/library/azure/hh851750.aspx.Azure 서비스 백 큐 메시지 처리

PeekLock을 사용한 다음 메시지를 abandon()으로 보내고 싶습니다. 두 응용 프로그램에서 모두 수신되기를 바랍니다. 삭제 메커니즘으로 대기열에서 10 초 동안 메시지 수명을 설정한다고 생각했습니다.

그러나 메시지가 10 초 후에 삭제 된 것처럼 보이기 때문에이 메시지는 10 초 동안 계속해서 두 응용 프로그램에 계속 게시됩니다. 일부 사용자 지정 중복 검색을 생성해야합니까, 아니면 일반적으로 잘못된 방식을 사용해야합니까?

답변

1

PeeKLock을 사용할 때 Complete Method를 사용하여 거의 항상 마무리해야합니다. Abandon 메서드는 "done"으로 표시되지 않으므로 중복성을 생성합니다.

서비스 버스 주제/가입 패턴 또는 필터를 사용해 본 적이 있습니까? 내가 당신의 시나리오를 올바르게 이해한다면, 그것은 당신이 필요로하는 것일 수도 있습니다. 어떤 주제의 응용 프로그램인지를 지정하는 다른 주제 또는 필터로 대기열에 2 개의 메시지를 보낼 수 있습니다.

http://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-topics-subscriptions/

이 상황 일치하지 않는 경우이 도움이, 또는 있으면 알려 주시기 바랍니다.

친절한 답변 ...

+0

이것은 내가 찾고있는 것 같습니다. 감사! – Ropstah

+0

그러나 구현 후 결과는 같습니다. "AllMessages"필터에 대해 여러 구독을해야합니다. 이 시점에서 특정 주제와 함께 전송 된 메시지는 두 응용 프로그램 중 하나에서만 수신됩니다 (무작위로 보임). 'complete()'가 끝나면 사라지고 다른 응용 프로그램은 더 이상 그것을받지 못합니다. "이제는"TestTopic "으로 메시지를 보내면"AllMessages "주제 구독에 가입 한 수신자에게 메시지가 전달되고 해당 메시지에 가입 한 수신자에게 선택적으로 전달됩니다. ... "* – Ropstah

+0

잠재적으로 메시지를 두 번 보낼 수 있습니까? 첫 번째에서는 "DestinedForAppA"와 같은 파일러를 사용하고 다른 하나는 "DestinedForAppB"입니다. 또는 "DestinedForAppA"와 함께 단일 메시지를 보내면 해당 메시지가 처리 될 때 "DestinedForAppB"가있는 해당 소비자로부터 다른 메시지를 작성하십시오. 이 모델에서는 메시지를 한 번만 보내고 필터 A의 소비자는 Fitler B 소비자를 위해 대기중인 새 메시지를 만듭니다. 이것들은 단지 아이디어 일 뿐이므로, 나의 반응이 이치에 맞지 않으면 사과드립니다. :-) 당신의 고통을 느끼기 때문에 오직 도움을 얻으 려합니다. – DanielG