Grails SchwartzJob с exceuteUpdate не работает - PullRequest
1 голос
/ 18 февраля 2020

Я пытаюсь запустить очередь 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 базу данных, он показывает множество процессов со статусом сна.

Спасибо

1 Ответ

1 голос
/ 22 февраля 2020

Если вы выполняете итерацию по набору, возможно, попробуйте отделить каждый прогон новой трассакцией? Пожалуйста, проверьте этот код:

try{
    Inputparams.withNewTransaction{
        Inputparams inputParams = Inputparams.findByUuid(uuid)
        inputParams.status = "running"
        inputParams.save()
    }
catch(ex){
    log.error ex
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...