带有exceuteUpdate的SchwartzJob无法正常工作

问题描述 投票:1回答:1

我正在尝试在表中运行作业队列,在该表中可以看到正在运行和排队的作业数量。如果没有任何作业正在运行,那么我会将该作业状态更新为“正在运行”。我运行分析并将状态更新为“完成”

 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数据库,它显示了很多处于睡眠状态的进程..

谢谢

mysql grails
1个回答
0
投票

如果要遍历一组,也许尝试用新的交易来分隔每次运行?请查看此代码:

try{
    Inputparams.withNewTransaction{
        Inputparams inputParams = Inputparams.findByUuid(uuid)
        inputParams.status = "running"
        inputParams.save()
    }
catch(ex){
    log.error ex
}
© www.soinside.com 2019 - 2024. All rights reserved.