私は仕事がいつ完了するかを知ることに依存している状況があります。
基本的に、シングルトンマネージャーは一連の仕事とそのスケジュールを追跡します。BがAに続くと仮定すると、Aがスケジューラーを実行すると、削除されたBのジョブが実行され、Aに時間的に近づくように再スケジュールされます。
私が遭遇した問題は、仕事が終わったときにマネージャーに通知することです
public class Action extends ScheduledEvent implements Job {
public Action() {
}
protected Action(String name, MomentInTime momentInTime, FireEventFrequency repeatFrequency) throws SchedulerException {
super(momentInTime, repeatFrequency);
}
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
// Do some work
EventScheduleManager.getInstance().eventComplete(this);
}
}
なぜそれが起こるのかは反省によるものであり、スケジューリング時にthis
再初期化され、現在はマネージャーに知られていることを理解しています。
それを回避する方法はありますか?スケジュールされたジョブが完了したことをマネージャーエンティティにどのように通知しますか?