comparison pkg/imports/queue.go @ 1168:930fdd8b474f

Track successfull imports in a separate table to be able to remove them later.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 14 Nov 2018 12:23:10 +0100
parents 443fc80a315f
children 3d50f558870c
comparison
equal deleted inserted replaced
1167:1ae93a0438df 1168:930fdd8b474f
34 Warn(fmt string, args ...interface{}) 34 Warn(fmt string, args ...interface{})
35 Error(fmt string, args ...interface{}) 35 Error(fmt string, args ...interface{})
36 } 36 }
37 37
38 Job interface { 38 Job interface {
39 Do(*sql.Conn, Feedback) error 39 Do(int64, context.Context, *sql.Conn, Feedback) error
40 CleanUp() error 40 CleanUp() error
41 } 41 }
42 42
43 JobKind string 43 JobKind string
44 44
353 feedback := logFeedback(idj.id) 353 feedback := logFeedback(idj.id)
354 354
355 feedback.Info("import #%d started", idj.id) 355 feedback.Info("import #%d started", idj.id)
356 356
357 errDo := survive(func() error { 357 errDo := survive(func() error {
358 return auth.RunAs(idj.user, context.Background(), 358 ctx := context.Background()
359 func(conn *sql.Conn) error { return job.Do(conn, feedback) }) 359 return auth.RunAs(idj.user, ctx,
360 func(conn *sql.Conn) error {
361 return job.Do(idj.id, ctx, conn, feedback)
362 })
360 })() 363 })()
361 if errDo != nil { 364 if errDo != nil {
362 feedback.Error("error do: %v", errDo) 365 feedback.Error("error do: %v", errDo)
363 } 366 }
364 errCleanup := survive(job.CleanUp)() 367 errCleanup := survive(job.CleanUp)()