Кварц (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, постановка, развертывание, балансировки нагрузки ...) кварцевая плагин позволяет конкретный процесс запуска независимо от того, какой сервер он развернут на.
Одна вещь, на которую следует обратить внимание, это синхронизация серверных часов, иначе вы можете столкнуться с какой-то странной функциональностью (особенно, если несколько серверов используют одну и ту же базу данных).
Выглядит хорошо, спасибо. –
Плагин Quartz - правильный путь. Делает жизнь намного проще. – JeffSea
Я использую его, это правильный инструмент, в котором вы нуждаетесь. –