Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 运行后台进程_Multithreading_Jsf - Fatal编程技术网

Multithreading 运行后台进程

Multithreading 运行后台进程,multithreading,jsf,Multithreading,Jsf,我有一个要求,我计划运行一个后台进程。 一旦用户登录到应用程序中,我需要完成两个过程。 1.验证用户身份并转到主页 2.获取一些数据并将其放入会话 如果我同时做这两件事,我需要10分钟才能到达主页。相反,我希望在处理身份验证时在后台运行第二个进程 我不需要从主页第二个进程的数据。我需要在另一个页面,我可以从会话访问它 有人能给我指出正确的方向吗 谢谢创建一个类,扩展线程或实现可运行并运行它。你可以在第一时间学习如何做这件事。在会话范围的托管bean中引用它,以便您可以从其他页面访问它 这就是说

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

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

我不需要从主页第二个进程的数据。我需要在另一个页面,我可以从会话访问它

有人能给我指出正确的方向吗


谢谢

创建一个类,
扩展线程
实现可运行
并运行它。你可以在第一时间学习如何做这件事。在会话范围的托管bean中引用它,以便您可以从其他页面访问它



这就是说,听起来好像您正在将某个数据库表完全拖到Java的内存中,该内存将持续10分钟。我强烈建议不要这样做。这是非常低内存效率的,并且每当多个用户同时访问您的应用程序时,它可能会崩溃。添加一些搜索/筛选/分页逻辑,只需编写相应的代码,就可以根据当前请求仅查询感兴趣的数据。谷歌也不会查询数不清的记录来存储在会话中,而在当前请求中只显示其中的10条。不要让Java接管数据库的角色,也不要低估数据库的功能。正确建模和索引时,它的速度非常快。

创建一个类,该类
扩展Thread
实现Runnable
并运行它。你可以在第一时间学习如何做这件事。在会话范围的托管bean中引用它,以便您可以从其他页面访问它



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

我怀疑在会话中存储这些数据是否真的合适。一般来说,在会话中存储大型数据结构是不明智的,因为性能原因:我不认为这是一个多线程问题;我认为这是一个设计问题。您不需要在会话中放入太多数据,使其停滞10分钟。此外,在会话加载数据时,您甚至可以使用会话10分钟吗?我想问一下,在会话中存储这些数据是否真的合适。一般来说,在会话中存储大型数据结构是不明智的,因为性能原因:我不认为这是一个多线程问题;我认为这是一个设计问题。您不需要在会话中放入太多数据,使其停滞10分钟。此外,在加载数据时,您甚至可以使用会话10分钟吗?感谢回复Balusc,我的要求是当用户从父下拉列表中选择值而不提交时,在页面上填充子菜单。我们的工程师不希望页面因父菜单上的每次更改而刷新。我首先想到使用javascript通过添加一个隐藏变量来实现这一点,该变量引用到托管bean中的映射。但现在,对于父下拉列表中的每个值,至少需要30个web服务调用。所以我计划在应用程序启动时移动此webservice调用,并将其存储在会话中。但我不希望用户等待10分钟进入主页。所以我希望这是在后台完成,而用户仍然可以浏览我的网站。我在谷歌上搜索了不同的方法,并浏览了这个()建议我们不应该在Web应用程序开发中使用线程,这会使它无法管理如果它不是用户特定的数据,只需将它存储在一个应用程序范围的托管bean中,该bean在Web应用程序启动时加载。感谢回复Balusc,我的要求是,当用户从父下拉列表中选择一个值而不提交时,填充页面上的子菜单。我们的工程师不希望页面因父菜单上的每次更改而刷新。我首先想到使用javascript通过添加一个隐藏变量来实现这一点,该变量引用到托管bean中的映射。但现在,对于父下拉列表中的每个值,至少需要30个web服务调用。所以我计划在应用程序启动时移动此webservice调用,并将其存储在会话中。但我不希望用户等待10分钟进入主页。所以我希望这是在后台完成,而用户仍然可以浏览我的网站。我在谷歌上搜索了不同的方法,并浏览了这个()建议我们不应该在Web应用程序开发中使用线程,这使得它不可管理如果它不是用户特定的数据,只需将它存储在一个应用程序范围的托管bean中,该bean在webapp启动时加载。