Ошибка кварцевого плагина на Grails - PullRequest
0 голосов
/ 02 января 2012

Я установил Quartz Plugin в проекте grails, но при компиляции он выдает следующую ошибку:

Error loading plugin manager: startup failed:
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 116: You cannot create an instance from the abstract interface 'org.quartz.CronTrigger'.
 @ line 116, column 35.
                   Trigger trigger = new CronTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, cronExpression)
                                     ^
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 122: You cannot create an instance from the abstract interface 'org.quartz.SimpleTrigger'.
 @ line 122, column 35.
                   Trigger trigger = new SimpleTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, new Date(), null, repeatCount, interval)
                                     ^
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 128: You cannot create an instance from the abstract interface 'org.quartz.SimpleTrigger'.
 @ line 128, column 35.
                   Trigger trigger = new SimpleTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, scheduleDate, null, 0, 0)
                                     ^
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 133: You cannot create an instance from the abstract interface 'org.quartz.SimpleTrigger'.
 @ line 133, column 35.
                   Trigger trigger = new SimpleTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, scheduleDate, null, 0, 0)
                                     ^
4 errors

и это то, чего я пытаюсь достичь ...

class MyJob  {
  static triggers = {
    cron name: 'myTrigger', cronExpression: "0 0 6 * * ?"
  }
 def group = "MyGroup"

 def execute(){
   print "Job run!"
 }
}

Примечание: версия плагина 0.4.2

1 Ответ

2 голосов
/ 05 января 2012

Я действительно не могу воспроизвести это.Я создал новый проект и установил плагин, и он работает отлично.Вы не пытаетесь создать экземпляр класса MyJob, верно?По сути, после установки этот класс (задание) готов к запуску.Это сработает в зависимости от настройки в выражении cronExpression.

Вот шаги, которые я предпринял для проверки вашего сценария:

1) Создать приложение grails:

grails create-app testquartz

2) установить плагин:

grails install-plugin quartz

3) создать новую работу:

grails create-jobmy

4) отредактируйте класс MyJob:

class MyJob  {
  static triggers = {
    cron name: 'myTrigger', cronExpression: "* * * * * ?"
  }
 def group = "MyGroup"

 def execute(){
   print "Job run!"
 }
}

5) Запустите приложение:

grails run-app

=> Вы должны видеть текст «Выполнение задания», распечатываемый каждую секунду, поскольку выражение cronExpression будет запускать его каждую секунду.Внутри execute () вы должны поместить код, который вы хотите выполнить в вашем задании cron.Я предлагаю создать службу и поместить код для запуска в службу и вызвать его внутри метода execute ().

...