//
Executor executor = getTaskExecutor();
final EventContext eventContext = (EventContext) appEvent;
Event event = eventContext.getEventHandler().getAnnotation(Event.class);
//
if (event.async()) {
getTaskExecutor().execute(new Runnable() {
@Override
public void run() {
eventListener.onApplicationEvent(eventContext);
}