带有 exceuteUpdate 的 grails SchwartzJob 不工作
grails SchwartzJob with exceuteUpdate is not working
我正在尝试 运行 table 中的 JOb 队列,在那里我看到有多少作业正在 运行 正在排队。如果没有工作是 运行ning,那么我将该工作状态更新为 运行ning。我运行分析和更新状态到"Done"
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)
上面的两个命令运行 非常完美,并且与完成状态相同。但是使用 运行ning 的查询不会更新,也不会给出任何错误。
当我检查 mysql 数据库时,它显示许多处于睡眠状态的进程..
谢谢
如果您正在迭代一个集合,也许尝试用一个新的交易将每个 运行 分开?请查看此代码:
try{
Inputparams.withNewTransaction{
Inputparams inputParams = Inputparams.findByUuid(uuid)
inputParams.status = "running"
inputParams.save()
}
catch(ex){
log.error ex
}
我正在尝试 运行 table 中的 JOb 队列,在那里我看到有多少作业正在 运行 正在排队。如果没有工作是 运行ning,那么我将该工作状态更新为 运行ning。我运行分析和更新状态到"Done"
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)
上面的两个命令运行 非常完美,并且与完成状态相同。但是使用 运行ning 的查询不会更新,也不会给出任何错误。
当我检查 mysql 数据库时,它显示许多处于睡眠状态的进程..
谢谢
如果您正在迭代一个集合,也许尝试用一个新的交易将每个 运行 分开?请查看此代码:
try{
Inputparams.withNewTransaction{
Inputparams inputParams = Inputparams.findByUuid(uuid)
inputParams.status = "running"
inputParams.save()
}
catch(ex){
log.error ex
}