2016-07-01 2 views
0

Я очень новичок в выражении cron. У меня есть только базовое понимание того, как это работает. Я реализую приложение, которое позволяет пользователю отправлять значение выражения cron с помощью шаблона * * * * * *. Но приложение не позволит cron работать меньше, чем каждые 30 минут.Проверка Unix Cron: не реже чем каждые 30 минут

Это метод проверки, который я написал.

private boolean checkInvalidCronExpresstion(final String value) 
{ 
    final String[] expression = StringUtils.split(value, " "); 

    // not allow case "* * * * * *" 
    if (expression[0].equals("*")) 
    { 
     return true; 
    } 
    else if (expression[0].contains("/")) 
    { 
     final String[] minutes = StringUtils.split(expression[0], "/"); 
     diff = Integer.parseInt(minutes[1]); 

     // not allow case "*/x * * * * *" with x < 30 
     if (diff < 30 && expression[1].contains("*")) 
     { 
      return true; 
     } 
    } 
    return false; 
} 

Мои вопросы (1) не метод выше крышки все недействительное выражение, которое будет вызывать хрон менее чем через каждые 30 минут, и (2) Я считаю, что может быть более элегантный способ проверить выражение пример перевести его в часы и минуты. Я просмотрел Spring CronSequenceGenerator, но я не вижу, чтобы это могло помочь в этом случае. Рекомендуется использовать какой-либо полезный класс или решение?

ответ

0

Не изобретайте велосипед здесь. Используйте библиотеку, например cron-utils, для анализа выражения Cron и проверки его.

https://github.com/jmrozanec/cron-utils

Смежные вопросы