2019-05-11 06:54:12 +02:00
package main
import (
2019-05-11 06:55:05 +02:00
"encoding/json"
2019-05-11 06:54:12 +02:00
"fmt"
2019-05-11 06:55:05 +02:00
"time"
2019-05-11 06:54:12 +02:00
)
2019-05-11 06:54:49 +02:00
func jobRescan ( j Job ) {
2019-05-11 06:54:12 +02:00
err := setJobStart ( j . ID64 )
logOnError ( err , "jobRescan : setJobStart" )
r := JobPayloadRescanMsg { }
err = json . Unmarshal ( j . payload , & r )
ids := getSQLListID64 ( r . Query )
if len ( ids ) > 1 {
for _ , id := range ids {
p := JobPayloadRescanMsg { }
fmt . Sprintf ( p . Query , "SELECT o.id from obj o where o.id = %d and o.obj_type_id = %d and o.obj_sub_type_id = %d;" , id , objTypeMessage , objSubTypeMessageUnknown )
b , _ := json . Marshal ( p )
err := createJob ( objSubTypeJobRescanMsg , objJobPriorityRescanChildMsg , time . Now ( ) , b )
logOnError ( err , "jobRescan : createJob(objSubTypeJobRescanMsg)" )
}
p := JobPayloadSetDone {
JobID64 : j . ID64 ,
}
b , _ := json . Marshal ( p )
err := createJob ( objSubTypeJobSetJobDone , objJobPriority , time . Now ( ) , b )
logOnError ( err , "jobRescan : createJob(objSubTypeJobSetJobDone)" )
} else if len ( ids ) == 1 {
SQLMsgIdentifyQueue <- ids [ 0 ]
err = setJobDone ( j . ID64 )
logOnError ( err , "jobRescan : setJobDone" )
}
return
}
2019-05-11 06:54:49 +02:00
func jobSetDone ( j Job ) {
2019-05-11 06:54:12 +02:00
err := setJobStart ( j . ID64 )
logOnError ( err , "jobSetDone : setJobStart" )
r := JobPayloadSetDone { }
err = json . Unmarshal ( j . payload , & r )
err = setJobDone ( r . JobID64 )
logOnError ( err , "jobSetDone : setJobDone(child)" )
err = setJobDone ( j . ID64 )
logOnError ( err , "jobSetDone : setJobDone" )
return
}