decouple device updates from db CRUD (#427)

Move the code for polling topics and updating device records into an independent worker.
Cleans up the code and makes it possible to swap the db backend.
This commit is contained in:
Victor Vrantchan
2018-05-30 09:14:41 -07:00
committed by GitHub
parent 35051e7d9b
commit 1ccf1c8ca1
4 changed files with 306 additions and 229 deletions

View File

@@ -180,11 +180,14 @@ func serve(args []string) error {
removeService = block.LoggingMiddleware(logger)(svc)
}
devDB, err := devicebuiltin.NewDB(sm.db, sm.pubclient)
devDB, err := devicebuiltin.NewDB(sm.db)
if err != nil {
stdlog.Fatal(err)
}
devWorker := device.NewWorker(devDB, sm.pubclient, logger)
go devWorker.Run(context.Background())
userDB, err := userbuiltin.NewDB(sm.db, sm.pubclient, log.With(logger, "component", "user db"))
if err != nil {
stdlog.Fatal(err)