界面controller

我在一个界面控制器里对一个按钮设置了动作,动作包含一个提示消息和一个导出(耗时较长),执行的时候提示消息不会在点击的时候紧接着出现,貌似是在导出执行完才提示,如何让提示消息能不受耗时较长的导出影响?另外我能否获取或监听事件执行的开始和结束?感谢 :pray:

@Subscribe
    public void onInit(InitEvent event) {
        export();
    }

    public void export() {
        exportExcel.addClickListener(clickEvent -> {
            notifications.create(Notifications.NotificationType.HUMANIZED)
                    .withCaption("开始导出····")
                    .show();
        });
        exportExcel.setAction(new BaseAction("").withHandler(event -> {
            exportProgressBar.setVisible(true);
            logger.info("导出开始");
            ················
            ················
            ················
            logger.info("导出结束");
        }));
    }

这种情况可以使用后台任务,下面是文档链接,最后还有一个发送 email 的例子,比较符合你的要求:
https://docs.jmix.cn/jmix/ui/background-tasks.html