Implement graceful shutdown of agent.DataAccess (#1008)

* Implements graceful shutdown of agent.DataAccess and underlying Datastore/Logstore/MessageQueue

* adds tests for closing agent.DataAccess and Datastore
This commit is contained in:
Gerardo Viedma
2018-05-21 11:28:21 +01:00
committed by GitHub
parent 105d9b8f1d
commit ea1f94253f
19 changed files with 180 additions and 12 deletions

View File

@@ -84,6 +84,7 @@ type Agent interface {
Submit(Call) error
// Close will wait for any outstanding calls to complete and then exit.
// Closing the agent will invoke Close on the underlying DataAccess.
// Close is not safe to be called from multiple threads.
io.Closer
@@ -209,6 +210,12 @@ func (a *agent) Close() error {
}
})
// shutdown any db/queue resources
// associated with DataAccess
daErr := a.da.Close()
if daErr != nil {
return daErr
}
return err
}