Führen Sie eine Quarz-Job mit einem Trigger von einem Controller

Kann ich einen cron-von einem statischen trigger aus in den job-Ordner, und es wird ausgeführt, aber wenn ich versuche, Feuer-trigger von meinen controller einfach nicht...Was übersehe ich?

FEHLER-CODE: Keine Signatur der Methode: static com.Beispiel.TaskReminderJob.triggerNow() ist anwendbar für die argument-Typen: java.util.LinkedHashMap) Werte: [[params:[name:Frank, email:[email protected]]]]

Quarz Job in grails-app/jobs/Beispiel

  package com.example
  class TaskReminderJob {
     def reminderMailService 
     static triggers = { }

     def execute(context) {
         def email = context.mergedJobDataMap.get('email')
         def name = context.mergedJobDataMap.get('name')
         reminderMailService.remindMail1(name, email)  //send email via service       
     }
  }

CONTROLLER AUFRUFEN DER JOB

package example

class UserController {
    def quartzScheduler 
    ...
    //user is created
    ...                     
    TaskReminderJob.triggerNow([name:"frank",email:"[email protected]"] )
} 
Warum würden Sie brauchen einen controller in den ersten Platz? Serie von Ereignissen: der Benutzer ist angelegt, einige job sollte ausgelöst werden, senden Sie ihm eine E-mail nach 7 Tagen nach Anlage der Benutzer, richtig? Die Quarz-job sollten rufen Sie einfach ein grails-service jeden Tag zu überprüfen, ob alle Benutzer erstellt vor 7 Tagen von heute an, wenn ja, senden Sie eine E-mail. 🙂
Die Art und Weise @dmahapatro vorgeschlagen, ist die Art und Weise habe ich es umgesetzt.

InformationsquelleAutor Tyler Rafferty | 2013-09-06

Schreibe einen Kommentar