Tyl*_*rty 5 grails groovy quartz-scheduler
我可以从作业文件夹中的静态触发器运行一个cron,它将执行,但是当我尝试从我的控制器触发一个触发器时,它只是失败...我错过了什么?
错误代码:没有方法签名:static com.example.TaskReminderJob.triggerNow()适用于参数类型:(java.util.LinkedHashMap)值:[[params:[name:Frank,email:frank@test.com] ]]
grails-app/jobs/example中的Quartz Job
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
}
}
Run Code Online (Sandbox Code Playgroud)
控制器呼吁工作
package example
class UserController {
def quartzScheduler
...
//user is created
...
TaskReminderJob.triggerNow([name:"frank",email:"frank@test.com"] )
}
Run Code Online (Sandbox Code Playgroud)
Ali*_*dad 12
更正您的包路径,然后您可以使用triggerNow方法手动触发您的作业.如果你需要传递任何参数,你可以像这样传递:
package com.example
class UserController {
def someAction(){
...
TaskReminderJob.triggerNow([id:params.id])
}
Run Code Online (Sandbox Code Playgroud)
工作
package com.example
class TaskReminderJob {
static triggers = {}
def execute(context) {
def id = context.mergedJobDataMap.get('id')
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11369 次 |
| 最近记录: |