- - PR -
Webアプリケーションで処理をスケジューリングする方法
| 投稿者 | 投稿内容 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-12-21 19:25
なるほど、分かりやすい説明助かります。 しかし、わがままなんですが、できれば1Webアプリケーション内でスケジュールを組んで処理を実行させたいと考えています。
そうですね。その方法も考えたのですが、セキュリティ的にどうなのでしょうか。もしかしたら、第3者からそのサーブレットにアクセスされ処理を実行されてしまう可能性もあるのではないのでしょうか。 | ||||||||||||||||
|
投稿日時: 2004-12-21 19:40
そもそもWebアプリWebアプリと言う事から
通常画面からユーザが手動で入力し実行する処理を 自動で定期的に実行させたい で認識は合っているでしょうか? また、Webアプリの構成は、単純な HTML(JSP)→Servlet→HTML(JSP) でこちらも認識合っているでしょうか? | ||||||||||||||||
|
投稿日時: 2004-12-21 19:46
こんばんわ。
私が好きなやり方は Contenxtリスナーで WEBアプリスタート時に Timerスレッドをまわすってのがありますけどね。 WEBアプリ終了時に落ちます。 | ||||||||||||||||
|
投稿日時: 2004-12-21 20:44
シェルスクリプトとセキュリティには何も関連ないですよ。 キチンと安全に動かせるように作るだけです。 それはシェルもWEBも一緒です。 スレッドを使えばいいという意見が多数出ていますが、私も同意です。 タイマースレッドは待機中、指定時間になるまで 無限ループするというようなイメージをお持ちではないでしょうか? スレッドの待機中はプログラムの負荷にはなりませんよ。 | ||||||||||||||||
|
投稿日時: 2004-12-21 20:53
その点について記述がハッキリしていないですね。すみません; 外部からのアクセスなしにWebアプリケーションで実装されている機能を 自動で定期的に実行させたい。 と言うことになります。
Webアプリの処理の流れはおっしゃる通りです☆実行したい処理自体はServletに記述しています。
なるほど、参考になります。スレッドを生成するタイミングはWebアプリ起動時が良いと思っていました。
・・・おもいっきり思っていました。 違うんですね(汗)大変勉強になります。それも考慮に入れて対応方法を検討したいと思います。 | ||||||||||||||||
|
投稿日時: 2004-12-22 00:19
該当する機能のみServlet API非依存のクラスにリファクタリングするのが 最適のように思いますが、既存のコードの修正を避けたいのであれば、 HttpUnitを使って、ブラウザからのユーザの操作と同等のリクエストを Webサーバに送るJavaプログラムを作り、cron等を使って定期的に実行する、 という方法はどうでしょうか。 | ||||||||||||||||
