複数のインスタンスを持つ Quartz セットアップがあり、実行されているジョブを中断したいと考えています。ドキュメントで述べられているScheduler.interrupt()
ように、メソッドはクラスターに対応していないため、このような制限を克服するための一般的な方法を探しています。
質問する
1615 次
2 に答える
2
さて、これを達成するために使用すべきいくつかの基本があります。
クラスター モードで実行している場合、現在実行中のジョブに関する情報は、Quartz テーブルで利用できます。たとえば、q_fired_triggers
実行中のジョブが含まれています。この表の最初の列は、それを担当するスケジューラ名です。そのため、誰が何をしているのかを簡単に知ることができます。
次に、Quartz インスタンスの JMX エクスポートを有効にするorg.quartz.scheduler.jmx.export
と、MBean は、各スケジューラを個別にリモート管理するための新しいエントリ ポイントを有効にします。MBean はメソッドを提供しますboolean interruptJob("JobName", "JobGroup")
次に、適切なスケジューラ インスタンスでこのメソッドを"単に" 呼び出して、効果的に中断する必要があります。
すべてのプロセスを手動で試してみましたが、正常に動作します。自動化する必要があるだけです:)
ハイ
于 2012-10-29T15:00:17.420 に答える