2016-12-22 3 views
1

메시지를 대기열로 보낼 수있는 웹 API를 만들었습니다. My Web API는 CQRS와 DDD를 염두에두고 설계되었습니다. 내 메시지 소비자가 대기열의 모든 메시지를 수신하기를 항상 기다리고 싶습니다. 현재 API가 메소드를 실행하도록 요청하면 메소드가 완료되는 방식으로 메시지를 읽습니다. 웹 응용 프로그램에서 요청하지 않고도 언제든지 메시지를 소비하도록 콘솔 응용 프로그램이나 항상 실행중인 방법을 사용할 수 있습니까? 그래서 더 많은 자동화 작업이 필요합니까? 그렇다면 어떻게 콘솔 앱을 실행하면 (IIS?) 항상 실행 상태를 유지하고 메시지를 소비해야하는 Dependency Injection을 사용하는 방법이 있습니까? 별도의 솔루션. ? 또는 시작시 EasyNetQ를 실행하는 방법은 무엇입니까?Web API에서 EasyNetQ/RabbitMQ 소비 이벤트

답변

0

이 상황을 처리하는 가장 좋은 방법은 EasyNetQ 라이브러리를 통해 AMPQ을 사용하여 버스 이벤트에 가입하는 것입니다. 권장되는 호스팅 방법은 topshelf library을 사용하여 Windows 서비스를 작성하고 시작시 해당 서비스 내부의 버스 이벤트에 가입하는 것입니다.

IIS 프로세스 및 스레드는 정기적으로 재활용되도록 설계되어있어 응용 프로그램의 일부 불안정성 및 불일치가 발생할 수 있으므로 이러한 작업에는 신뢰할 수 없습니다.

그리고 메시지를 소비해야 할 때 의존성 삽입을 사용하는 방법이 있습니다. 그런 다음 별도의 솔루션에있는 저장소에 보내십시오.

명백히 오프 토픽이므로 분명히 별도의 질문을 작성하는 것이 좋습니다. 또한 구체적으로 당신이 고심하고있는 것이 명확하지 않기 때문에 더 자세히 고안해야합니다.

관련 문제