2014-04-01 55 views
0

我有一個要求,我想根據某些操作觸發事件,並且此功能將作爲jar文件實現。通過Jar文件實現事件發佈功能

讓我們舉一個例子來解釋一下。

有一個Web應用程序WAR_FILE。 有一個名爲REST_CLIENT的休息客戶端。 有一個jar文件,其中包含名爲MY_JAR的客戶機REST_CLIENT的api方法。

現在WAR_FILE將使用MY_JAR將數據發佈到REST_CLIENT。

但WAR_FILE不想等待它的響應。它像發佈數據並且不關心響應。 MY_JAR將從WAR_FILE獲取所有輸入並將其作爲緩存存儲在隊列中。我使用redis將此隊列維護爲緩存。

主要問題是MY_JAR必須每次檢查該隊列中是否有任何請求採取行動。

Sol 1:在MY_JAR中使用石英檢查每隔n秒後是否有新的請求進行處理。

問題1:WAR_FILE本身可能使用了一些石英。

問題2:如果一個線程正在執行隊列中的任務列表,並且其他線程到來並開始執行相同的請求。

溶膠2:使用cron作業

問題:problem2在溶膠1

溶膠3:RabitMQ/ActiveMQ的(只是聽說過它)

問題:不知道如何使用它以及它可以如何幫助我。

請幫幫我。

回答

0

我發現各種解決方案,這problem.Actually這是JMS。(以前我不知道這種技術的)

(1)使用Redis的發佈/訂閱事件公佈

http://redis.io/topics/pubsub

對於簡單的java:http://www.basrikahveci.com/a-simple-jedis-publish-subscribe-example/

春:http://java.dzone.com/articles/redis-pubsub-using-spring

(2)使用設克的RabbitMQ

RabbitMQ的安裝:https://www.rabbitmq.com/install-debian.html

Java示例:http://www.rabbitmq.com/tutorials/tutorial-one-java.html