我正在尝试在表中运行作业队列,在该表中可以看到正在运行和排队的作业数量。如果没有任何作业正在运行,那么我会将该作业状态更新为“正在运行”。我运行分析并将状态更新为“完成”
def qjobs = Inputparams.createCriteria()
def qresult = qjobs.list {
eq("status", "queued")
}
def qjobs2 = Inputparams.createCriteria()
def rjobs = qjobs2.list {
eq("status", "running")
}
并更新状态:
def runuuid22= Inputparams.executeUpdate("update Inputparams b set b.status = :status"+
" where b.uuid = :uuid",
[status:"running",uuid:uuid])
println("runuuid22 is "+runuuid22)
以上两个命令运行完美,并且在完成状态下也是如此。但是正在运行的查询不会更新,也不会出现任何错误。
我正在检查mysql数据库,它显示了很多处于睡眠状态的进程..
谢谢
如果要遍历一组,也许尝试用新的交易来分隔每次运行?请查看此代码:
try{
Inputparams.withNewTransaction{
Inputparams inputParams = Inputparams.findByUuid(uuid)
inputParams.status = "running"
inputParams.save()
}
catch(ex){
log.error ex
}