多个侦听器可以在相同的代码上工作吗?

时间:2017-09-27 01:39:22

标签: java spring-boot activemq spring-jms

我计划拥有一个代理主题,并拥有多个默认消息侦听器或简单的消息侦听器。所有侦听器都执行相同的代码。

  1. 每个侦听器代码执行是否独立于另一个。我想问的是,如果在访问相同的方法时听众之间会有冲突吗?
  2. 我有点像多线程执行一样工作。 我使用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) {
    
            }
    
        }
    

1 个答案:

答案 0 :(得分:0)

您的侦听器必须是线程安全的 - 没有字段(类级变量)或者必须使用同步保护它们。