주문을 생성 할 수있는 주문 웹 서비스가 있습니다. 메소드가 호출 될 때, 메시지는 서비스 버스로 전송되고 주문 메시지 핸들러에 의해 처리됩니다.메시지 기반 아키텍처에서 예약 된 작업을 설계하는 방법은 무엇입니까?
일일 및 월 단위로 주문 보고서를 생성해야합니다. 일반적으로 주문 메시지 처리기에 데이터베이스에 주문을 저장 한 다음 데이터베이스에서 읽고 보고서를 생성하는 예약 된 작업이 있습니다. 그러나 이것을하기위한 메시지 지향적 인 방법이 더 있는지 궁금합니다.
주문 메시지 처리기가 다양한보고 서비스 (예 : 매일 및 월간)에 가입 할 수 있다는 메시지를 게시하는 것에 대해 생각했습니다. 메시지는 지정된 간격 (매일/매월)으로 서비스가 활성화 될 때까지 지정된 대기열에 누적됩니다. 그런 다음 서비스는 대기열에서 메시지를 처리하고 보고서를 생성합니다. 이게 가야 할 길인가?
모든 포인터가 크게 감사하겠습니다.
업데이트
은 게시자 큐에 메시지를 유지할 수 (NServiceBus 포함)이되고 만 주어진 간격으로 게시? 아니면 게시자가 즉시 게시하고 구독자의 처리가 예약되도록 다른 방법을 사용해야합니까?
메시지 기반 아키텍처를 사용하면 일일/월간 보고서가 아닌 "실시간"보고 기능을 사용할 수 있음을 비즈니스 이해 관계자와상의하십시오. 간혹보고를 수행하는 이유는 동기식 아키텍처로 구축 된 시스템의 성능을 저하시키기 때문입니다. –
예약 된 이벤트가 정말로 필요한 경우 Quartz Scheduler를 사용하십시오. MassTransit에는 어댑터가 있습니다. 누군가 NServiceBus에 대해 동일한 작업을 수행했을 것입니다. – Travis