Skip to content

Commit 0be7fbf

Browse files
committed
Added postgres time conversion
1 parent 026ecd9 commit 0be7fbf

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

pkg/pgqueue/config/task.go

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
308308
var (
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
313332
func convertPtr(src reflect.Value, dest reflect.Type) (reflect.Value, error) {
314333
// Pass value through

0 commit comments

Comments
 (0)