运行后台进程

时间:2010-05-12 14:19:09

标签: multithreading jsf

我有一个要求,我计划运行后台进程。 一旦用户登录到应用程序,我需要完成两个过程。 1.验证用户并转到主页 2.获取一些数据并将其放入会话中。

如果我同时进行这两项工作,则需要10分钟才能到达主页。相反,我希望在处理身份验证时,第二个进程在后台运行。

我不需要主页中第二个进程的数据。我需要在其他可以从会话中访问的页面中使用它。

有人可以让我朝着正确的方向前进吗?

由于

1 个答案:

答案 0 :(得分:1)

创建一个extends Threadimplements Runnable的类并运行它。您可以在Sun tutorial了解如何操作。在会话范围的托管bean中引用它,以便您可以从其他页面访问它。


那就是说,听起来好像你把一些数据库表完全拖到Java的内存中,持续10分钟。我强烈建议不要这样做。这是非常低效的内存,当多个用户同时访问您的应用程序时,它可能会爆炸。添加一些搜索/过滤/分页逻辑,然后相应地编写代码,以便根据当前请求查询感兴趣的数据。 Google也不会查询数以万计的记录来将其存储在会话中,并且在当前请求中只显示其中的10个。不要让Java接管数据库的角色,也不要低估数据库的功能。正确建模和索引后速度非常快。