Cron Expression вызывается несколько раз - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь выполнять работу каждый день в определенное время для целей тестирования, которые должны были выполняться каждый день в 11:20:00, а на самом деле это должно происходить каждый день в 23:59:59.По какой-то причине работа продолжает срабатывать каждые 5 минут, и я не знаю почему.См. Код здесь:

 static triggers = {
    cron name: 'reportTrigger', cronExpression: "0 20 11 ? * * *"
}

def execute(){
    //execute code that isn't relevant here
}

Я нахожусь на версии 2.0.9 кварцевого плагина Grails, я пробовал более новые версии, но это вызывает другие задачи (которые на самом деле должны запускаться каждый5 минут) больше не работать.

1 Ответ

0 голосов
/ 13 июня 2018

Кварцевый синтаксис немного отличается от того, что вы знаете из * nix.Он имеет 6 параметров, и первый - это секунды, а не минуты

Поскольку это плагин Grails 2, найти документацию уже сложно, но в целом последний параметр должен быть ?, как указано в https://github.com/9ci/grails-quartz2нижняя часть страницы.Таким образом, ваш эксперимент будет: 0 20 11 * * ? для 11:20:00

Кроме того, если вы хотите иметь другую запись для ПРОИЗВОДСТВА и тестирования, вы можете добавить ее следующим образом:

static triggers = {
        if (Environment.current == Environment.PRODUCTION) {
            cron cronExpression: "0 0 * * * ?"
        } else {
            cron cronExpression: "0 */1 * * * ?"
        }
}
...