2011-10-11 11 views
1

XMLデータを取得してMySQL DBに挿入するスケジューラを作成しています。しかし、私が見つけようとしている問題や論理はここにあります。 注:これをWindows環境で実行したいのは、将来他のプラットフォーム用に設定される可能性があります。スケジュールされたジョブ間でデータを共有する方法

  1. スケジューラは5分ごとに実行する必要があります。
  2. このスクリプトは、XMLからデータフィールドを解析および収集する条件/構成をフェッチし、これらの条件はMySQLテーブルから入手できます。
  3. この表では、XMLフィールド&の遅延の差異をこのスクリプトがチェックする遅延も定義しています。
  4. このスクリプトは両方とも、5分ごとにXMLを収集し、その遅延ごとにテーブル(MySQL)の違いをチェックするために実行されます。
  5. このスクリプトはXMLデータフィールドを読み取り、それを解析し、上記のMySQLテーブルから定義されたデータフィールドのみを収集します。
  6. 収集されたデータは、状態が変化し、この状態がMySQLテーブルから定義されている場合にのみ、MySQL DBに挿入されます。

フィードバック/提案:

  1. 遅延による、私は、各スケジュールの間で共有されるスクリプトに設定を保存する方法を確認していません。
  2. このデータを格納するコードに変数staticを使用する必要はありますか?どの仕事がb/w別の仕事で共有されますか?または別のスケジュール?
  3. 基本的に、これをどのように実装する必要がありますか?パフォーマンス面でのより良いアプローチ。

お時間をいただきありがとうございます。

UPDATE:(?)

の提案の一つは、WindowsサービスとしてJavaコードを使用することで、我々は異なるジョブ間で共有されるいくつかの一般的なデータを持っているだろうか? - 意味があるの?

参考: Java Service Wrapper

答えて

0

Concurensyは答えは、いくつかのスレッドが同じリソースで作業する場合は、あなたも同期を使用coudスレッドプールやエグゼキュータのservisesを作成してみてください、そして5分間、特定のスレッドを停止します。 もっと多くのスレッドを使用しているほうが速いことを覚えておいてください。 3 threads- 2分 5threads-6分

*スレッド

についての記事を読むチュートリアル*スレッドプール/ synchnizationsと共有resourses(約いくつかのチュートリアルを読む* 5分

待ちとFEシンプルなスレッドを作成スクリプト部分) *最適な方法を見つけるためのテスト

関連する問題