gpt4 book ai didi

grails - 使用 Controller 的触发器执行 Quartz 作业

转载 作者:行者123 更新时间:2023-12-04 17:01:12 25 4
gpt4 key购买 nike

我可以从作业文件夹中的静态触发器运行 cron 并且它会执行,但是当我尝试从我的 Controller 触发触发器时,它只是失败了......我错过了什么?

错误代码:无方法签名:静态 com.example.TaskReminderJob.triggerNow() 适用于参数类型:(java.util.LinkedHashMap) 值:[[params:[name:Frank, email:frank@test.com] ]]

grails-app/jobs/example 中的 Quartz 工作

  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 调用作业
package example

class UserController {
def quartzScheduler
...
//user is created
...
TaskReminderJob.triggerNow([name:"frank",email:"frank@test.com"] )
}

最佳答案

更正您的包路径,然后您可以使用 triggerNow 手动触发您的作业方法。如果你需要向它传递任何参数,你可以像这样传递它:
Controller

package com.example

class UserController {
def someAction(){
...
TaskReminderJob.triggerNow([id:params.id])
}
}
招聘
package com.example

class TaskReminderJob {
static triggers = {}

def execute(context) {
def id = context.mergedJobDataMap.get('id')
...
}
}

关于grails - 使用 Controller 的触发器执行 Quartz 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com