Calling a long running process asynchronously on a button click in JSF

后端 未结 2 1060
清酒与你
清酒与你 2020-12-06 14:57

I want to execute a stored proc by clicking on a button developed in JSF and Java. The proc takes roughly around 30 minutes in execution.

When the user clicks on thi

2条回答
  •  渐次进展
    2020-12-06 15:22

    Just trigger an @Asynchronous EJB method. It'll fire and forget a separate thread and the bean action method will immediately return.

    @Named
    public class Bean {
    
        @EJB
        private Service service;
    
        public void submit() {
            service.asyncDoSomething();
    
            // Add message here.
        }
    
    }
    
    @Stateless
    public class Service {
    
        @Asynchronous
        public void asyncDoSomething() {
            // ...
        }
    
    }
    

    See also:

    • Is it safe to start a new thread in a JSF managed bean?
    • How can server push asynchronous changes to a HTML page created by JSF?

提交回复
热议问题