mysql - grails SchwartzJob 与 exceuteUpdate 不工作

标签 mysql grails

我正在尝试在表中运行 JOb 队列,在该表中我看到有多少作业正在运行和排队。如果没有作业正在运行,那么我将该作业状态更新为正在运行。我运行分析并将状态更新为“完成”

 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 数据库时,它显示了很多具有 sleep 状态的进程..

谢谢

最佳答案

如果您正在迭代一个集合,也许尝试用一个新的事务来分隔每个运行?请查看此代码:

try{
    Inputparams.withNewTransaction{
        Inputparams inputParams = Inputparams.findByUuid(uuid)
        inputParams.status = "running"
        inputParams.save()
    }
catch(ex){
    log.error ex
}

关于mysql - grails SchwartzJob 与 exceuteUpdate 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60288838/

相关文章:

更新(使用新对象)列表时,Grails 代码失败,但没有找到匹配的编辑器或转换策略

php - 网站抓取后的奇怪符号

exception - 无法序列化流程执行

hibernate - 使用AbstractPersistenceEventListener进行透明加密

python - 如果我不关闭一个 mysql 连接并打开另一个连接,会发生什么情况?

Grails YAML 映射列表

hibernate - 刷新页面时 grails 中奇怪的 GORM 行为 (F5)

mysql - SQL 数组搜索

Php mysqli_fetch_array 不起作用

c# - 日期时间格式到 YYYY-mm-dd 转换 c# asp.net