Minor improvements

1) gen_otp supports single use OTP secrets
2) improve database config check logic
3) reconnect websocket routine to engine (apart from the exchange pair syncer)
4) ImPrOvE CoNsIsTeNcY wItH LoG OuTpUt
This commit is contained in:
Adrian Gallagher
2019-08-26 12:46:53 +10:00
parent c1f9e04015
commit f6afeee800
5 changed files with 66 additions and 16 deletions

View File

@@ -34,7 +34,7 @@ func (a *databaseManager) Start() (err error) {
return errors.New("database manager already started")
}
log.Debugln(log.DatabaseMgr, "database manager starting...")
log.Debugln(log.DatabaseMgr, "Database manager starting...")
a.shutdown = make(chan struct{})
@@ -60,7 +60,7 @@ func (a *databaseManager) Start() (err error) {
audit.Audit = auditSQLite.Audit()
}
dbConn.Connected = true
log.Debugf(log.DatabaseMgr, "connection established to %v using %v", dbConn.Config.Host, dbConn.Config.Driver)
log.Debugf(log.DatabaseMgr, "Database connection established to host: %v using %v driver\n", dbConn.Config.Host, dbConn.Config.Driver)
mLogger := mg.MLogger{}
migrations := mg.Migrator{
@@ -91,7 +91,7 @@ func (a *databaseManager) Stop() error {
return errors.New("database manager already stopped")
}
log.Debugln(log.DatabaseMgr, "database manager shutting down...")
log.Debugln(log.DatabaseMgr, "Database manager shutting down...")
err := dbConn.SQL.Close()
if err != nil {
log.Errorf(log.DatabaseMgr, "Failed to close database: %v", err)
@@ -101,7 +101,7 @@ func (a *databaseManager) Stop() error {
}
func (a *databaseManager) run() {
log.Debugln(log.DatabaseMgr, "database manager started.")
log.Debugln(log.DatabaseMgr, "Database manager started.")
Bot.ServicesWG.Add(1)
t := time.NewTicker(time.Second * 2)
@@ -113,7 +113,7 @@ func (a *databaseManager) run() {
Bot.ServicesWG.Done()
log.Debugln(log.DatabaseMgr, "database manager shutdown.")
log.Debugln(log.DatabaseMgr, "Database manager shutdown.")
}()
for {
@@ -132,13 +132,13 @@ func (a *databaseManager) checkConnection() {
err := dbConn.SQL.Ping()
if err != nil {
log.Errorf(log.DatabaseMgr, "database connection error: %v", err)
log.Errorf(log.DatabaseMgr, "Database connection error: %v\n", err)
dbConn.Connected = false
return
}
if !dbConn.Connected {
log.Info(log.DatabaseMgr, "database connection reestablished")
log.Info(log.DatabaseMgr, "Database connection reestablished")
dbConn.Connected = true
}
}

View File

@@ -164,6 +164,7 @@ func ValidateSettings(b *Engine, s *Settings) {
b.Settings.EnableExchangeHTTPDebugging = s.EnableExchangeHTTPDebugging
b.Settings.DisableExchangeAutoPairUpdates = s.DisableExchangeAutoPairUpdates
b.Settings.ExchangePurgeCredentials = s.ExchangePurgeCredentials
b.Settings.EnableWebsocketRoutine = s.EnableWebsocketRoutine
if !b.Settings.EnableExchangeHTTPRateLimiter {
request.DisableRateLimiter = true
@@ -383,6 +384,10 @@ func (e *Engine) Start() {
go EventManger()
}
if e.Settings.EnableWebsocketRoutine {
go WebsocketRoutine()
}
<-e.Shutdown
e.Stop()
}

View File

@@ -295,11 +295,21 @@ func WebsocketRoutine() {
common.IsEnabled(Bot.Exchanges[i].IsWebsocketEnabled()))
}
// TO-DO: expose IsConnected() and IsConnecting so this can be simplified
if Bot.Exchanges[i].IsWebsocketEnabled() {
ws, err := Bot.Exchanges[i].GetWebsocket()
if err != nil {
log.Errorf(log.WebsocketMgr, "Exchange %s GetWebsocket error: %s\n",
Bot.Exchanges[i].GetName(), err)
return
}
// Exchange sync manager might have already started ws
// service or is in the process of connecting, so check
if ws.IsConnected() || ws.IsConnecting() {
return
}
// Data handler routine
go WebsocketDataHandler(ws)