添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
一直单身的海豚  ·  A problem with Quartz ...·  5 天前    · 
温暖的消炎药  ·  OIM DB Row LOCK ...·  5 天前    · 
帅气的面包  ·  Caused by: ...·  5 天前    · 
傻傻的荒野  ·  Piața Norilor din ...·  2 月前    · 
爱笑的小蝌蚪  ·  How one customer made ...·  4 月前    · 
冷静的炒粉  ·  可 爱 狗 狗 五 ...·  8 月前    · 
boolean isValidExpression( String expression){
boolean result = false ;
if (CronExpression.isValidExpression(expression)){
try {
CronExpression targetExpression = new CronExpression(expression);
if (targetExpression.getNextValidTimeAfter( new Date( System .currentTimeMillis())) ! = null ){
result = true ;
} catch (ParseException e) {
e.printStackTrace();
return result;

첫 조건은 Cron 식이 유효한 식인지 확인하는 isValidExpression이다.

파라메터는 String, 반환값은 boolean이다.

3번째 줄 isValidExpression의 내부를 보면

CronExpression을 생성하면서 파라메터의 String을 생성자로 주는데, 이 때 Exception이 발생하면 false, 제대로 생성되면 true를 반환하게 된다. 결국 5번째 줄 CronExpression 생성자를 내부에서 한번 해보고 결과를 넘겨주는 것이다.

두번째 조건은 6번째 줄의 getNextValidTimeAfter이다.

CronExpression이 생성됐다면, getNextValidTimeAfter를 통해 다음 수행 예정 Date가 있는지를 체크하는 것이다. 없으면 null이 반환되기 때문에 null일 경우 다음 수행 예정이 없는 무의미한 Cron 식이라는 것이고, 있다면 사용할 수 있는 식으로 간주한다.

두 조건을 만족할 경우 true를 반환해 새로운 Job을 생성하도록 한다.

https://www.quartz-scheduler.org/api/2.1.7/org/quartz/CronExpression.html#validateExpression(java.lang.String)

CronExpression (Quartz Parent POM 2.1.7 API)

protected  void addToSet(int val, int end, int incr, int type)

www.quartz-scheduler.org

https://github.com/quartz-scheduler/quartz/blob/master/quartz-core/src/main/java/org/quartz/CronExpression.java

quartz-scheduler/quartz

Code for Quartz Scheduler. Contribute to quartz-scheduler/quartz development by creating an account on GitHub.

github.com