0

携帯電話から取得できるデータを提供するJavaWebサービスを実装したい単純なTomcat7サーバーがあります。重要なのは、サーバー上のデータを時々更新したいということです。したがって、データを更新する「バックグラウンドプロセス」が必要です。

私は最初に、バインディング実装クラスのコンストラクターで新しいスレッドを開始しようとしました(これは、HttpServletなどではなく自分のサービスのみを実装します)。

public NewBindingImpl(){   
  Thread informationFetcher = new InformationFetcher();   
  informationFetcher.start(); 
}

しかし、誰かがサービスを使用するたびにこのクラスが作成されるという事実については考えていませんでした。さらに、これは私がそれらを要求した瞬間にのみデータを更新します。しかし、どうすればそれらを更新できますか?たとえば、2時間ごとに更新できますか?

うまくいけば、ここの誰かがアイデアを持っています。それは「単純な」Webサービスでも可能ですか?

どうもありがとうございます、

トビアス

編集: - -

たぶん、私がこの非常に基本的なチュートリアルをここで試したことを知るのに役立ちます:

http://www.elearning.witnut.com/230/java-web-service-creation-using-top-development-approach/

4

1 に答える 1

1

サーブレットのinit()メソッドが呼び出されたときにスレッドを初期化してみませんか?destroy()対応するメソッドが呼び出されたときにシャットダウンできます。スレッドはサーブレットのライフサイクルにバインドされ、init()呼び出されるのは1回だけなので、複数のインスタンスについて心配する必要はありません。

これは、 init()メソッドの使用法に関する簡単なチュートリアルです。

2時間ごとに何かを実行したいので、Timerクラスをチェックしてください。より複雑なシナリオでは、 Quartzは深刻な競争相手です。

于 2012-10-09T13:15:01.077 に答える