2

雇用主から、実行中の Java EE WebSphere アプリケーションで時間指定バッチ プロセスを実行するように依頼されました。毎日午後 11 時 30 分に特定のクラスを実行することになっています。

私はJava EEやWebSphereサーバー(または開発環境のTomcat)にあまり詳しくありません。掘り下げてきましたが、見つけたのはJavaタイマークラスに関することだけで、それを設定または呼び出す方法はわかりません.

web.xml ファイルの編集も必要なようです。

どんな助けでも大歓迎です!

4

7 に答える 7

5

OpenSymphonyのオープンソースのQuartz ライブラリを参照する必要があります。非常に使いやすく、この種のものに最適です。

TimerTasks は、将来の短い時間で何かを実行するのに最適です。しかし、このような長い時間枠で繰り返し実行する場合は、Quartz が優れています。今後のタスクのリストをファイルやデータベースなどの永続的なストレージに保持することもできるため、アプリケーションが再起動されても、今後の時間指定されたジョブが失われることはありません。

また、Spring フレームワークには、Quartz の素晴らしい抽象化があります。

于 2008-09-16T23:10:13.657 に答える
2

WebSphereでは、Scheduler Serviceを使用して、Javaクラスのメソッドの実行をトリガーできます。スケジューラーは、ジョブの実行をスケジュールするためのカレンダー(cronと同様)を提供します。または、独自のカレンダーを開発することもできます。

WAS6.1ドキュメントのスケジューラについて説明しているページへのリンクは次のとおりです。

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp

于 2008-11-24T05:55:18.853 に答える
1

EJB 3.1 ではタイマー サービスが改善され、アプリケーション ライフサイクル フックによって、サーブレットを使用してユーザーの操作なしでタスクを開始する必要がなくなります。

これは質問のタイトルに答えるかもしれませんが、websphere で実行されているレガシー アプリケーション (6 か月以上前に作成された ;)) に関する「実際の」質問については、起動サーブレットと EJB タイマー サービスを使用することをお勧めします。

J2EE 1.4 (EJB 2.1) のタイマー サービス

EJB 3.0 (および 3.1 が利用可能になり次第) には、いくつかの優れた注釈があります ;)

本当に必要でない限り、別のライブラリを紹介しません。タイマー サービスは、日常的に任意のジョブを実行するのに十分なはずです。

HTH、
マーティン

于 2008-09-18T20:31:48.810 に答える
0

web.xml で、起動時にロードするようにサーブレットを構成できます。
構文:

<サーブレット servlet-name='hello' servlet-class='test.HelloWorld'>
<load-on-startup/>
</servlet>

これを行うと、サーブレットの init メソッドで Timer / TimerTask を設定して、必要なことを何でも実行できます。TimerTask は、いつ実行するかをスケジュールできる点を除いて、スレッドに似ています。

于 2008-09-16T23:12:14.620 に答える
0

WebSphere でのスケジューリングはサポートされていません。

UNIX を使用している場合は、crontab を使用して、websphere アプリケーションのページへのリクエストをスケジュールできます。Windowsでは、ページへのリクエストをスケジュールする可能性もあると思います。私のcrontabでは、毎日8:45にWebページへのリクエストをスケジュールしています

45 8 * * * GET http://www.domain.com/myBatch?securitykey=verysecret

今では、毎朝 myBatch サーブレットが呼び出され、そこで必要なことは何でも実行できます。他のユーザーがこのページを呼び出さないようにしてバッチを開始するために、securitykey パラメーターを追加しました。

于 2008-09-18T20:16:59.050 に答える
0

Quartz は、標準の JBoss 4.2.x ディストリビューションの一部です。

また、非常に優れたライブラリであり、多くの作業を行わなくても単純なワークフローを定義することもできます.

于 2008-09-17T02:22:44.693 に答える
0

WebSphere にはスケジューリングのサポートが含まれています。

WAS v7.0 http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.base.doc/info/aes/ae/welc6tech_sch.html

WAS v6.1 http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.base.doc/info/aes/ae/welc6tech_sch.html

于 2009-06-08T18:52:01.037 に答える