【发布时间】:2017-09-27 01:39:21
【问题描述】:
我计划有一个代理主题,并有多个默认消息侦听器或简单的消息侦听器。所有的侦听器都执行相同的代码。
- 每个侦听器代码执行是否相互独立。我想问的是,当访问相同的方法时,听众之间是否会发生冲突?
我有点像他们工作的多线程执行。 我使用 JMS 和 activemq 作为代理。
需要理解的一些代码: 每个侦听器都会调用此方法“事件处理”发送事件。该方法将依次调用其他方法。处理方法将依次调用其他方法。
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) {
}
}
【问题讨论】:
-
没有更详细的代码 sn-ps 很难说,但基本的多线程和并发仍然适用于您。因此,假设 eventProcessing 方法在一个类上并被多个侦听器调用,并且每个侦听器传入的 Event 对象对于各个侦听器都是唯一的,我认为您在这里是非常线程安全的
标签: java spring-boot activemq spring-jms