私はJava RESTfulウェブサービスを持っています。これは別のプロセスによって約10秒ごとに呼び出されます。条件が正しい場合、Webサービスは潜在的に広範なETLプロセス(たとえば10〜20秒)を実行する必要があります。しかし、ペイロードが正常にWebサービスに配信されたことを呼び出しアプリケーションにすぐに戻したいと考えています。要件のワーカースレッドが続行されている間、メインスレッドはRESTfulなWebサービスで終了できますか?
概要:
- 検証認証および入力パラメータ。
- 検証が失敗した場合は、XMLでエラーを返します。
- スレッドを開始してETLプロセスを実行します。プロセスは特定の条件下でのみ進められます。
- 配信されたペイロードを示すXMLと、渡された入力の検証を返します。
私はこれをコード化しており、正しく動作しているようです。しかしそれは正しいとは思わない。作成したスレッドは、メインのWebサービススレッドより長く実行される可能性があります。
誰もがこれを行うためのよりよい方法を教えたいですか?
ありがとうございます。私はシングルトンでExecutorServiceを実装しました。スレッドの結果を追跡し、後で暴走スレッドをチェックするためのコードを導入できるように、スレッドクラスでもCallable <>インターフェイスを使用しています。 – BigRedBettaFish