comparison pkg/imports/gmsched.go @ 1661:51a0ba4ede41

Scheduled imports: Made gauge measurement import able to be scheduled.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 21 Dec 2018 14:15:33 +0100
parents 85386ad17d34
children
comparison
equal deleted inserted replaced
1660:f32e8a973b48 1661:51a0ba4ede41
14 package imports 14 package imports
15 15
16 import ( 16 import (
17 "log" 17 "log"
18 18
19 "gemma.intevation.de/gemma/pkg/common"
19 "gemma.intevation.de/gemma/pkg/scheduler" 20 "gemma.intevation.de/gemma/pkg/scheduler"
20 ) 21 )
21 22
22 func init() { 23 func init() {
23 scheduler.RegisterAction("gm", scheduledGM) 24 scheduler.RegisterAction("gm", scheduledGM)
24 } 25 }
25 26
26 func scheduledGM(id int64) { 27 func scheduledGM(id int64) {
27 log.Println("info: scheduled GM import") 28 log.Println("info: scheduled GM import")
29
28 cfg, err := loadIDConfig(id) 30 cfg, err := loadIDConfig(id)
29 if err != nil { 31 if err != nil {
30 log.Printf("error: %v\n", err) 32 log.Printf("error: %v\n", err)
31 return 33 return
32 } 34 }
33 if cfg == nil { 35 if cfg == nil {
34 log.Printf("warn: No config found for id %d.\n", id) 36 log.Printf("error: No config found for id %d.\n", id)
35 return 37 return
36 } 38 }
37 // TODO: Implement me! 39 if cfg.URL == nil {
40 log.Println("error: No URL specified")
41 return
42 }
43 gm := &GaugeMeasurement{
44 URL: *cfg.URL,
45 Insecure: false,
46 }
47
48 var serialized string
49 if serialized, err = common.ToJSONString(gm); err != nil {
50 log.Printf("error: %v\n", err)
51 return
52 }
53
54 var jobID int64
55 if jobID, err = AddJob(
56 GMJobKind,
57 cfg.User,
58 cfg.SendEMail, cfg.AutoAccept,
59 serialized,
60 ); err != nil {
61 log.Printf("error: %v\n", err)
62 return
63 }
64
65 log.Printf("info: added import #%d to queue\n", jobID)
38 } 66 }