带有 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
}