在Grails的Quartz任务开始时运行一次函数,并在两次调用之间持久化变量值,可以通过以下步骤实现:
以下是一个示例代码:
import grails.plugins.quartz.JobExecutionContext
import org.quartz.JobExecutionException
class MyJob {
def myFunctionExecuted = false
static triggers = {
simple name: 'myTrigger', startDelay: 0, repeatInterval: 5000
}
def execute(JobExecutionContext context) throws JobExecutionException {
if (!myFunctionExecuted) {
myFunction()
myFunctionExecuted = true
}
}
def myFunction() {
// 在此处编写你需要执行的函数逻辑
// 持久化变量值
def myPersistentObject = MyPersistentObject.findById(1)
myPersistentObject.variable = "new value"
myPersistentObject.save(flush: true)
}
}
在上述示例中,"MyJob"是一个Quartz任务,每次调度会执行execute方法。在该方法中,检查"myFunctionExecuted"变量,如果为false,则调用"myFunction"方法执行你的函数逻辑,并将"myFunctionExecuted"设置为true。在"myFunction"方法中,你可以编写需要执行的函数逻辑,并使用GORM持久化机制来更新变量值。
注意:以上示例中的"MyPersistentObject"是一个模型类,用于持久化变量值。你需要根据自己的需求创建相应的模型类,并进行持久化操作。
希望这个答案能够帮助到你!如果你对其他问题有疑问,请随时提问。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云