4

Tomcat / Jettyサーバーで定期的なタスク(デーモンスレッドなど)を実行するための最良/最も簡単な方法は何ですか?スレッドを開始するにはどうすればよいですか?単純なメカニズムがありますか、それともこれはまったく悪い考えですか?

4

5 に答える 5

9

すべてをJava側に保持したい場合は、Quartzを見てください。
cron ジョブと同じ柔軟性で、フェールオーバーとジョブの細かい再分割を処理します。

于 2009-01-19T01:17:22.850 に答える
4

サーブレット コンテキストに java.util.Timer (またはさらに良いことに、ScheduledExecutor) インスタンスをスタッシュすることは問題なく効果的です。サーブレットの init() 呼び出しで作成すると、すべてのサーブレットが TimerTasks を追加できます。

于 2009-01-19T02:22:28.927 に答える
2

多くのシステムで機能する汎用的な方法の1つは、アプリに対して定期的にwgetを実行するcronジョブを作成することです。

于 2009-01-19T00:00:54.093 に答える
0

tomcat/jetty についてはお答えできませんが、Python ベースの Web アプリで同様のことを行いました。

私は通常、必要な定期的なタスクを実行する別のアプリを実行するだけです。Web サイトとアプリの間で相互運用が必要な場合、その通信は何らかの API (XML-RPC/unix ソケットなどを使用) を介して行うことも、十分であればデータベース層を介して行うこともできます。

それが役立つことを願っています。

于 2009-01-19T00:24:55.217 に答える
0

cron ジョブを使用したいが、開発システムへの管理アクセス権がない場合は、次のコマンドを実行してユーザー crontab を実行できます。

crontab -e

ほとんどのシステムではデフォルトで vi を使用しますが、次の方法で任意のエディターに変更できます。

export EDITOR=/usr/local/bin/my_editor

次に、crontab -e コマンドを実行すると、エディターで crontab ファイルが起動します。保存すると、変更がシステムの cron にコミットされます。

于 2009-01-19T21:05:09.923 に答える