某些前提在我原来的问题上发生了变化inter-thread communication between java application and jax-ws web service(我也在简化问题以使它更容易理解(并因此得到回答)......希望没关系版主。)java web应用程序和web服务之间的线程间通信
Web服务线程(THREAD-1)在套接字上放置请求并进入休眠状态等待响应。另一个侦听器线程(THREAD-2)(作为单独的Web应用程序运行,一旦收到响应)必须将THREAD-1唤醒。
我该如何做(推送通知方式)?
他们都有权访问数据库表。 THREAD-1可以在睡觉之前将其唯一的ID放在表格中。 THREAD-2一旦收到响应并确定它属于THREAD-1,就会更新数据库表中相应的行。现在,THREAD-1可以在数据库表上进行轮询(定期)以检查响应是否已到达。
但我期待以推送通知的方式做到这一点。应答到达时应立即通知THREAD-1,而不必每隔几秒轮询一次。
第一反应,而阅读此:*不这样做*。第二:*不要自己动手*。这是消息排队。所以找到一个解决方案/产品/框架,可以让您在数据库之上处理消息排队。 – Arne 2012-07-14 17:50:27
我认为消息队列更适合异步通信,在我的情况下,THREAD-1无法将请求放入队列并忘记它 - 它实际上必须等待阻塞模式以获取其响应以更新其调用客户端(web服务客户在这种情况下)关于收到的响应。这是我为什么不应该在这种情况下使用消息队列的第一个推理。 – 2012-07-14 18:23:49