0

次の問題を簡単に構成できる方法でモデル化できるパターンおよび/またはフレームワークを探しています。

3 分ごとに、一連のジョブを Web アプリケーション コンテキストで開始する必要があります。これらのジョブは、同時に Web サービスにアクセスして最新バージョンのデータを取得し、それをデータベースにプッシュします。問題は、データに対して大量の複雑な計算を実行するために、データを読み取るためにデータベースが頻繁に使用されることです。私たちは現在春を使用しているので、このプロセスを実行するためにSpring Batchを見てきました.Springまたは同様のシステムの他の技術を使用する提案/パターン/例はありますか?

4

3 に答える 3

1

We have used ServletContextlisteners to kick off TimerTasks in our web applications when we needed processes to run repeatedly. The ServletContextListener kicks off when the app server starts the application or when the application is restarted. Then the timer tasks act like a separate thread that repeats your code for the specified period of time.

ServletContextListener http://www.javabeat.net/examples/2009/02/26/servletcontextlistener-example/

TimerTask http://enos.itcollege.ee/~jpoial/docs/tutorial/essential/threads/timer.html

于 2012-04-04T14:43:22.357 に答える
1

ジョブを Web アプリケーションからスタンドアロン アプリにリファクタリングすることは可能ですか?

そうすれば、バッチ ジョブを別のバッチ サーバーに固定することができ (バッチ ジョブの余分な負荷が Web アプリケーションに影響を与えないようにするため)、Web サービスを呼び出してデータベースを更新します。その後、cron や Autosys などを使用してジョブを開始できます。

まさにこの目的のためにSpring-Batchを使用しています。

データベースの設計は、バッチ データの用途によっても異なります。レポート目的の場合は、運用データベースをレポート データベースから分離し、データベース リンクを使用して必要なデータを運用データベースからレポート データベースに取得し、レポート データベースで複雑なクエリを実行することをお勧めします。こうすることで、運用データベースから負荷がシフトされます。

于 2012-04-04T14:55:01.490 に答える
1

camel-integration のようなフレームワークも検討する価値があると思います。また、いわゆるEnterprise Integration Patternsも参照してください。カタログを確認してください。目前のスケーリング/スケジューリングの問題について考えるのに役立つ語彙を提供してくれるかもしれません。

フレームワーク自体は、Spring と非常によく統合されています。

于 2012-04-05T08:51:00.677 に答える