私はTomcat 6.20インスタンスを実行しており、バックグラウンドスレッド経由でメールを送信して、メール送信機能が要求をブロックしないようにしたいと考えています。tomcatのバックグラウンドスレッド
通常のページフローを発生させながら、バックグラウンドでスレッドを実行する方法はありますか。
このアプリケーションは、ICEfacesで書かれています。
ありがとうございました。
私はTomcat 6.20インスタンスを実行しており、バックグラウンドスレッド経由でメールを送信して、メール送信機能が要求をブロックしないようにしたいと考えています。tomcatのバックグラウンドスレッド
通常のページフローを発生させながら、バックグラウンドでスレッドを実行する方法はありますか。
このアプリケーションは、ICEfacesで書かれています。
ありがとうございました。
java.util.concurrent.Executors.newCachedThreadPool
(または他のファクトリメソッドの1つ)を使用してExecutor
を作成します。java.lang.Runnable
Executor
にRunnable
を提出してください。起動時に単一のExecutorを作成し、すべての要求を共有することを忘れないでください。毎回新しいエグゼキュータを作成しないでください(ただし、少し遅くて無駄です)。
私は方法を見つけました。これらのタグ
@PostConstruct()
と
@PreDestroy()
はvoidを返すサーブレットで2つのメソッドを作成し、パラメータを受け入れません。 最初のメソッドのすぐ上に1番目のタグを配置し、2番目のタグの上に2番目のタグを配置します。
実装したクラスは、Webサービスのクライアントへの応答を開始する前に@PostConstructメソッドがコンテナによって呼び出されます。
@PreDestroyメソッドは、エンドポイントが操作から削除される前にコンテナによって呼び出されます。
PostConstruction()メソッド内では、runnableインターフェイスを使用してスレッドを作成し、特定のブール変数の値がfalseでない限り無限ループで実行させます。
PreDestroy()メソッドを使用してブール変数をfalseに設定します。
これはj.u.c.Executors.newCachedThreadPool(sを含む)である必要がありますが、それ以外は:agree – WMR
ありがとうございます。一定。 – skaffman
チップのおかげで。実装例がありますか? – RaelG