0
브로커 주제가 있고 여러 개의 기본 메시지 수신기 또는 간단한 메시지 수신기를 가질 계획입니다. 모든 리스너는 동일한 코드를 실행합니다.여러 청취자가 동일한 코드에서 작동 할 수 있습니까?
- 각 리스너 코드는 다른 것과 독립적으로 실행됩니다. 내가 물어 보려고하는 것은 동일한 방법을 사용할 때 청취자들간에 충돌이있을 경우인가?
나는 멀티 스레드 실행과 같이 작동합니다. JMS와 activemq를 중개인으로 사용하고 있습니다.
이해할 수있는 코드 : 각 청취자는이 메서드를 "이벤트 처리"이벤트를 보내는 것으로 호출합니다. 이 메서드는 다른 메서드를 호출합니다. handle 메소드는 다른 메소드를 호출합니다.
private void eventProcessing(final Event Event){
try {
if(Event.isDatafileTransaction()){
final EventDatafileTransaction datafileTransaction = Event.getDatafileTransaction();
final List<Events> transactions = getDatafileTransactions(datafileTransaction);
final List<AcEventRecordOperation> recordOperations = getTransactionsAsListOfRecordOperations(datafileTransaction, transactions);
if (recordOperations != null && recordOperations.size() > 0) {
recordOperationListener.handle(recordOperations);
}
}
} catch (Throwable t) {
}
}
더 자세한 코드 스 니펫 없이는 알기 어렵지만 기본 멀티 스레딩 및 동시성은 여전히 적용됩니다. 그래서 EventProcessing 메서드가 클래스에 있고 여러 리스너에 의해 호출되고 각 리스너가 전달하는 Event 객체가 개별 리스너에 대해 고유하다고 가정하면 여기서는 스레드로부터 안전하다고 생각합니다. –