Чтобы быть быстрым, я бы использовал ответ, аналогичный тому, который я опубликовал на этот вопрос.
Reha sh мой ответ там быстро, его можно резюмировать by: Создайте модель запроса, содержащую необходимые аннотированные методы @EventHandler
для «повторной обработки», которые вы должны предоставить в качестве входных данных конструктору Axon AnnotationEventHandlerAdapter
. Вы должны вызвать следующий AnnotationEventHandlerAdapter
с отфильтрованным потоком событий на основе ваших требований. В результате модель запроса будет обновлена до нужного вам формата.
Таким образом, вместо того, чтобы выполнять ее как форму запроса, потому что пользователям требуется эта информация, вы должны выполнить операцию в исключительном случае. Тем не менее, вы все равно будете формировать модель запроса заново, но только на основе определенного c набора событий.
Кстати, когда дело доходит до выбора обработчика событий, я бы все равно go для TrackingEventProcessor
. Да, это означает, что сбой события не приведет к откату, но, по сути, событие указывает, что оно произошло. Таким образом, откат, потому что что-то еще не может обработать это событие, неверен; команда все еще выполнена успешно, поэтому она тоже должна оставаться такой.
Наконец, вы ищете logi c. Расширение трассировки, которым вы поделились, совсем недавно было выведено из бета-статуса и, следовательно, может безопасно использоваться. Далее, ведение журнала basi c уже может быть достигнуто путем настройки LoggingInterceptor
как MessageHandlerInterceptor
и MessageDispatchInterceptor
(документацию по этому поводу можно найти здесь ). И если вы хотите представить Aspect logi c: Axon имеет механизм, аналогичный t ie, в каждом обработчике сообщений. Взгляните на HandlerEnhancer
/ HandlerEnhancerDefintion
на эту страницу.
Надеюсь, все это поможет вам @MilindaD!