#grails #groovy
#grails #groovy
Вопрос:
У меня есть приложение Grails, но мне нужно выполнить некоторый скрипт с помощью Cron. Этот скрипт должен иметь доступ к базе данных с помощью Gorm. Это можно сделать grails create-script cron-script
. Но как перенести его в файл war или jar?
Ответ №1:
Наиболее распространенный способ выполнения сценариев через регулярные промежутки времени в приложении Grails — это плагин Quartz. Нет простого способа получить доступ к GORM из задания cron.
Ответ №2:
Если у вас установлен консольный плагин, его можно вызвать с помощью curl из сценария оболочки, выполняемого cron. Сделайте что-то вроде этого:
#/bin/bash
import groovy.sql.Sql
def dataSource = ctx.dataSource
def sql = new Sql(dataSource)
curl -i -H "Content-type: application/x-www-form-urlencoded" -c /tmp/cookies.txt -X POST www.yoursite.com/j_spring_security_check -d "j_username=admin@yoursite.comamp;j_password=verysecretpassword"
curl -i -b /tmp/cookies.txt -d 'code=
sql.executeUpdate("insert into yourtable (test) values (42)")
' www.yoursite.com/console/execute