@@ -42,6 +42,7 @@ func NewTask(manager *pgqueue.Manager, threads uint) (server.Task, error) {
4242 self .callbacks = make (map [string ]server.PGCallback , 100 )
4343 self .decoder = marshaler .NewDecoder ("json" ,
4444 convertPtr ,
45+ convertPGTime ,
4546 convertFloatToIntUint ,
4647 marshaler .ConvertTime ,
4748 marshaler .ConvertDuration ,
@@ -147,7 +148,9 @@ FOR_LOOP:
147148 }
148149 n += len (tasks )
149150 }
150- ref .Log (ctx ).With ("ticker" , evt ).Debug (parent , "removed " , n , " tasks from queue" )
151+ if n > 0 {
152+ ref .Log (ctx ).With ("ticker" , evt ).Debug (parent , "removed " , n , " tasks from queue" )
153+ }
151154 }
152155 }
153156 }
@@ -299,16 +302,32 @@ func joinName(parts ...string) string {
299302 return strings .Join (parts , namespaceSeparator )
300303}
301304
302- func splitName (name string , n int ) []string {
303- return strings .SplitN (name , namespaceSeparator , n )
304- }
305-
306305// //////////////////////////////////////////////////////////////////////////////
307306// PRIVATE METHODS
307+
308308var (
309309 nilValue = reflect .ValueOf (nil )
310+ timeType = reflect .TypeOf (time.Time {})
310311)
311312
313+ // convertTime returns time in postgres format
314+ func convertPGTime (src reflect.Value , dest reflect.Type ) (reflect.Value , error ) {
315+ // Pass value through
316+ if src .Type () == dest {
317+ return src , nil
318+ }
319+
320+ if dest == timeType {
321+ // Convert time 2025-05-03T17:29:32.329803 => time.Time
322+ if t , err := time .Parse ("2006-01-02T15:04:05.999999999" , src .String ()); err == nil {
323+ return reflect .ValueOf (t ), nil
324+ }
325+ }
326+
327+ // Skip
328+ return nilValue , nil
329+ }
330+
312331// convertPtr returns value if pointer
313332func convertPtr (src reflect.Value , dest reflect.Type ) (reflect.Value , error ) {
314333 // Pass value through
0 commit comments