2011-07-09 16 views
3

私はx日ごと、またはx分ごとに実行する特定のJavaアプリケーションをスケジュールしたいという問題に直面しています。私はプラットフォームに依存しないソリューションを本当に持っていたいと思っていますが、私は素晴らしいソリューションを見つけることを切望しています。Javaスケジュールされたタスク(ウィンドウ内)

スケジューリングを達成するために、私はいくつかの解決策、1つはサービスであり、もう1つはWindows APIを使用することでした。 私は本当にサービスを使用したくない、それは私のプロジェクトでうまく展開しません。私はサービスをインストールするためにいくつかのスクリプトを使用しなければならないでしょう、ちょうど私にとっては正しい解決策ではないようです。

私はWindowsのスケジューリングサービスも行ってきました。彼らは仕事には完璧に見えます。しかし、私はコマンドラインの解析に問題があります。私はそれをインストールした後に私の仕事を変更することができるようにしたい。しかし、私がコマンドラインツールを照会すると、出力言語が異なることがあります(ロケール)。

多分、オペレーティングシステムごとに異なる状態を実装するソリューションがありますか?

答えて

10

確かに、Quartzを試してください。スクリプト、サービス、アプリ内のJARはありません。すべてのJava - どのOSでも動作します。

プラットフォームに依存しない理由がわかりません。私の経験では、スケジュールされた仕事は、仕事の必要がなくなるか、またはサーバーが引退しない限り、配備されているサーバーから移動することはめったにありません。彼らはだけ移動しません

Quartzがあなたのお茶でない場合は、cronジョブを展開して完了するよりもWindowsをよく知っているサーバー管理者を探すことをおすすめします。

+0

私は自分のウェブサイトを見ましたが、これは私が探している解決策ではないと思います。これは私がいつも動いているjvmを持っていなければならないことを意味します。 – Terraego

+1

プラットフォームに依存しないことがあなたの要求された要件でした。なぜ、JVMは常時稼働しているのですか?たぶん、Windows cronジョブを理解している人があなたよりも優れていることが分かります。スケジュールされたジョブは、サーバーからサーバーに頻繁に移行されません。なぜplatfomの独立性が重要なのですか? – duffymo

+0

は、アプリケーションが複数のオペレーティングシステムで動作するためです。私は別のオペレーティングシステムの異なる実装を書くことができます。 私は、コマンドラインを使ってタスクをスケジュールするのに十分なスケジュールタスクAPIを理解しています。私はJavaのラッパーを作ることさえできますが、問題はコマンドラインツールが異なる出力言語を持っていることです;) – Terraego

2

私の場合、「プラットフォームに依存しないソリューション」と「私はWindowsスケジューリングサービスを使いたい」というのは矛盾していますが(Quartzがおそらく最高の純粋なJavaソリューションであることに同意します)、Powershellのスクリプトによっては、 Windowsのプログラムはもう少し簡単です - hereherehereとPowershellについて議論している他の場所を見てください。そして現代のWindowsはすべてPowerShellを搭載しているはずです。

+1

私はWindowsスケジューリングAPIを使用することはプラットフォームに依存しないことに同意します;)。 "私は素晴らしい解決策を見つけるために希望をあきらめました:P"私が最初の段落に述べたように " – Terraego

関連する問題