Quartz 调度程序有包含日历吗?我看到有排除日历,但我没有看到任何有关包含日历的信息。我希望能够从日历中选择日期并在这些日期运行作业。日期不一定有一定的模式。我怎样才能在 Quartz 中做到这一点?
最佳答案
Quartz Calendar 仅定义包含内容。这是界面:
public interface Calendar {
public boolean isTimeIncluded(long timeStamp);
public long getNextIncludedTime(long timeStamp);
}
一些实现用于定义排除项,但其他支持包含项。看看DailyCalendar及其 invertTimeRange属性。
既然您提到您只想在日历中包含特定日期,我怀疑您可能必须实现自己的日历。查看BaseCalendar这应该是一个很好的起点。
如果你很懒,你也许可以继承HolidayCalendar只需将 isTimeInincluded
更改为
@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 (!)
}
定义日历应该非常简单。请记住,它必须是可序列化
!
查看 Quartz Tutorial了解更多信息。
关于java - Quartz 调度程序有包含日历吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262744/