Кварц (http://grails.org/plugin/quartz) позволяет вам определять повторяющиеся задачи практически так же, как задача CRON будет выполняться на одном сервере.
Вы можете установить ее в своем проекте следующим образом:
grails install-plugin quartz
После установки вы можете создать новое задание с помощью:
grails create-job
Затем вы можете запланировать его следующим образом:
class MyJob {
static triggers = {
simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 1000
}
def group = "MyGroup"
def execute(){
print "Job run!"
}
}
Если вы предпочитаете CRONформатирование, вы можете запланировать свой триггер, используя аналогичный формат:
static triggers = {
cron name: 'myTrigger', cronExpression: "0 0 6 * * ?"
}
Однако, поскольку приложение grails может быть развернуто на нескольких серверах (QA, staging, deploy, балансировщик нагрузки ...), кварцевый плагин позволяетконкретный процесс запускается независимо от того, на каком сервере он развернут.
Одна вещь, на которую нужно обратить внимание, - это то, что часы сервера синхронизированы - в противном случае вы можете столкнуться с некоторыми странными функциями (особенно если несколько серверов используют один и тот же сервер)базы данных).