Quartz scheduler 是否有包含日历
Does Quartz scheduler have inclusion calendars
Quartz 调度器有包含日历吗?我看到有排除日历,但我没有看到任何关于包含日历的信息。我希望能够从日历中 select 天和那些日子的 运行 工作。日期不一定有规律。我如何在 Quartz 中执行此操作?
石英日历仅定义夹杂物。这是界面:
public interface Calendar {
public boolean isTimeIncluded(long timeStamp);
public long getNextIncludedTime(long timeStamp);
}
一些实现用于定义排除项,但其他实现支持包含项。看看 DailyCalendar and its invertTimeRange 属性.
既然您提到您只想在日历中包含特定日期,我怀疑您可能必须实施自己的日历。查看 BaseCalendar 这应该是一个很好的起点。
如果你懒惰,你也许可以继承 HolidayCalendar 并只需将 isTimeIncluded
更改为
@Override
public boolean isTimeIncluded(long timeStamp) {
if (super.isTimeIncluded(timeStamp) == false) {
return false;
}
Date lookFor = getStartOfDayJavaCalendar(timeStamp).getTime();
return dates.contains(lookFor); // <-- HERE we remove the bang (!)
}
定义日历应该非常简单。请记住,它必须是 Serializable
!
查看 Quartz Tutorial 了解更多信息。
Quartz 调度器有包含日历吗?我看到有排除日历,但我没有看到任何关于包含日历的信息。我希望能够从日历中 select 天和那些日子的 运行 工作。日期不一定有规律。我如何在 Quartz 中执行此操作?
石英日历仅定义夹杂物。这是界面:
public interface Calendar {
public boolean isTimeIncluded(long timeStamp);
public long getNextIncludedTime(long timeStamp);
}
一些实现用于定义排除项,但其他实现支持包含项。看看 DailyCalendar and its invertTimeRange 属性.
既然您提到您只想在日历中包含特定日期,我怀疑您可能必须实施自己的日历。查看 BaseCalendar 这应该是一个很好的起点。
如果你懒惰,你也许可以继承 HolidayCalendar 并只需将 isTimeIncluded
更改为
@Override
public boolean isTimeIncluded(long timeStamp) {
if (super.isTimeIncluded(timeStamp) == false) {
return false;
}
Date lookFor = getStartOfDayJavaCalendar(timeStamp).getTime();
return dates.contains(lookFor); // <-- HERE we remove the bang (!)
}
定义日历应该非常简单。请记住,它必须是 Serializable
!
查看 Quartz Tutorial 了解更多信息。