某些前提在我原來的問題上發生了變化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