我希望commandButton
调用托管bean中的一个方法,该方法将异步处理某些内容(new Thread
),然后请求应立即完成,而不必等待新的Thread
完成。我希望这个异步代码能够在需要时执行,与用户会话无关。
但是请求没有完成并且一直在等待线程完成,我不明白为什么。我在这里弄错了吗?
XHTML:
<p:commandButton
value="Update"
id="updateButtonId"
styleClass="internalButton"
action="#{myBean.processUpdate}"
onstart="PF('loading').show()"
oncomplete="PF('loading').hide()"
update="myDataTableId" />
豆:
@ManagedBean(name="myBean")
@ViewScoped
public class MyBean {
...
public void processUpdate(){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//do something...
}
});
thread.start();
}
}