我正在使用JSF来创建一个Web应用程序.
我有一个应用程序作用域bean,它具有无限循环,以便它定期执行一个动作.
我的问题是这个bean(由于无限循环)阻塞整个应用程序.我以为bean会在自己的线程上运行.不是JSF的情况,默认情况下每个托管bean都在自己的线程上运行?
我应该创建一个线程,让无限循环在该线程中运行吗?
谢谢
应用程序作用域bean是否在JSF中的单独线程上运行?
不,它肯定没有.
我应该创建一个线程,让无限循环在该线程中运行吗?
不,你不应该.您应该只创建一个计划任务.最好的方法是使用@Singleton @ScheduleEJB.
@Singleton
public class SomeDailyJob {
@Schedule(hour="0", minute="0", second="0", persistent=false)
public void run() {
// Do your job here which should run daily at midnight.
}
}
Run Code Online (Sandbox Code Playgroud)
就这样.没有必要手动搞乱线程的额外配置.如果要在JSF托管bean中访问其状态-if any,只需@EJB按常规方式注入即可.
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |