关于java,网站可以使用相同的线程来处理所有客户端请求吗?

关于java,网站可以使用相同的线程来处理所有客户端请求吗?,java,queue,Java,Queue,我有一个tomcat网站。我的客户上传员工ID列表,用于查询详细信息姓名、年龄、地址等。。我的网站没有这些数据,只能从另一个网站查询,我称之为UPPER SITE,它一次只能查询一个工人ID。我的网站工作就是让它自动运行。问题是上面的站点每秒可以查询一个。这意味着我的站点只能运行一个查询thead。我很困惑。一个客户端上传将产生一个查询thead。如何使它们都只使用一个查询thead?你能做到这一点吗?还是其他?我的网站是Sington网站。如果您没有访问其他网站的权限,您可以建议创建一个工作线

我有一个tomcat网站。我的客户上传员工ID列表,用于查询详细信息姓名、年龄、地址等。。我的网站没有这些数据,只能从另一个网站查询,我称之为UPPER SITE,它一次只能查询一个工人ID。我的网站工作就是让它自动运行。问题是上面的站点每秒可以查询一个。这意味着我的站点只能运行一个查询thead。我很困惑。一个客户端上传将产生一个查询thead。如何使它们都只使用一个查询thead?你能做到这一点吗?还是其他?我的网站是Sington网站。

如果您没有访问其他网站的权限,您可以建议创建一个工作线程,为您查询其他网站。工作流程如下:

当客户端上载用于查询详细信息的工作者ID时,请将其提交到数据库。唤醒工作线程。设置此“客户端”线程以轮询数据库以获取结果。 唤醒一个工作线程,该线程将访问您的数据库以获取您的工作ID详细信息。当然,可能有多个工作线程,因为您可能有多个客户端线程提交到您的数据库。此工作人员将查询其他网站,然后将结果提交到数据库,如果没有剩余工作,则休眠线程。 客户端线程将看到结果并将结果发布回用户,并从数据库中清除结果。
编辑:我不知道其他网站的架构,如果查询可以成批处理,这可能会非常有效。如果您的网站很忙,并且每秒只能查询一次,则可能需要寻找其他解决方案。

您可以将服务器的线程池配置为1。当然,这并不意味着这是个好主意;您为什么要这样做,因为您试图解决的问题可能有更好的解决方案?与其将其限制为一个,不如尝试允许多个线程,这是更好的解决方案。如果上面的站点只能处理一个线程,而您无法控制它,那么请尝试查询队列之类的方法,但仅限于一个线程。。这不是一个好主意。还有一种方法可以是跟踪上次请求的时间,让新请求等待,直到等待或排队时间结束?这是指您声明UPPER site只允许一个请求/秒。@PeterLawrey您能分享您更好的解决方案吗?我的观点是;如果您与我们分享您认为需要这样做的原因,我们可能能够提供更好的解决方案。一个客户端唤醒一个工作线程,而许多客户端将唤醒多个工作线程。此工作人员将查询其他网站。这将产生许多查询线程。我的想法是有一个线程。。因此,您可能有许多客户机试图唤醒这个单一线程。此线程负责为您查询其他站点,并将查询结果提交到本地数据库。客户端线程将轮询数据库以获取该结果。。正如我在编辑中提到的,如果您不能批处理查询,那么这种方法可能是多余的。。你的选择确实有点有限。