mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 15:09:42 +00:00
engine: Adds shutdown method to exchange manager and unload all exchanges when engine is stopped (#1112)
* engine: shutdown and unload exchange when engine is stopped * linter: fixes * engine/exchMan: add nil check * engine/exchanges: add shutdown method to exchanges, rm len check lock not needed, expanded code coverage, address some nits * exchMan: report all failed shutdowns across exchanges, implement timer and monitoring routines. * exchMan: improve shutdown sequence and aloc. * further improvement * exchman: log from warn to error * websockconnection: Suppress error return when closure is caused by library * linter: fix * fix racies * add note on why not parallel tests * glorious: nits * spelling kween * thrasher: nits * engine: change print of setting using reflection, I keep forgetting to implement this so program around forgetfulness * engine/exchange_management: remove wait group and just rely on intermediary lock * glorious: nits * Update common/common.go Co-authored-by: Adrian Gallagher <adrian.gallagher@thrasher.io> * Update main.go Co-authored-by: Adrian Gallagher <adrian.gallagher@thrasher.io> --------- Co-authored-by: Ryan O'Hara-Reid <ryan.oharareid@thrasher.io> Co-authored-by: Adrian Gallagher <adrian.gallagher@thrasher.io>
This commit is contained in:
@@ -34,8 +34,8 @@ const (
|
||||
|
||||
var (
|
||||
settings = engine.Settings{
|
||||
CoreSettings: engine.CoreSettings{EnableDryRun: true},
|
||||
ConfigFile: filepath.Join("..", "..", "..", "..", "testdata", "configtest.json"),
|
||||
EnableDryRun: true,
|
||||
DataDir: filepath.Join("..", "..", "..", "..", "testdata", "gocryptotrader"),
|
||||
}
|
||||
exchangeTest = Exchange{}
|
||||
@@ -201,7 +201,7 @@ func setupEngine() (err error) {
|
||||
return err
|
||||
}
|
||||
|
||||
em := engine.SetupExchangeManager()
|
||||
em := engine.NewExchangeManager()
|
||||
engine.Bot.ExchangeManager = em
|
||||
|
||||
return engine.Bot.LoadExchange(exchName, nil)
|
||||
|
||||
@@ -19,10 +19,12 @@ import (
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
settings := engine.Settings{
|
||||
ConfigFile: filepath.Join("..", "..", "..", "testdata", "configtest.json"),
|
||||
EnableDryRun: true,
|
||||
DataDir: filepath.Join("..", "..", "..", "testdata", "gocryptotrader"),
|
||||
EnableDepositAddressManager: true,
|
||||
CoreSettings: engine.CoreSettings{
|
||||
EnableDryRun: true,
|
||||
EnableDepositAddressManager: true,
|
||||
},
|
||||
ConfigFile: filepath.Join("..", "..", "..", "testdata", "configtest.json"),
|
||||
DataDir: filepath.Join("..", "..", "..", "testdata", "gocryptotrader"),
|
||||
}
|
||||
var err error
|
||||
engine.Bot, err = engine.NewFromSettings(&settings, nil)
|
||||
@@ -30,7 +32,7 @@ func TestMain(m *testing.M) {
|
||||
log.Print(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
em := engine.SetupExchangeManager()
|
||||
em := engine.NewExchangeManager()
|
||||
exch, err := em.NewExchangeByName(exch.Value)
|
||||
if err != nil {
|
||||
log.Print(err)
|
||||
@@ -45,7 +47,10 @@ func TestMain(m *testing.M) {
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
em.Add(exch)
|
||||
err = em.Add(exch)
|
||||
if !errors.Is(err, nil) {
|
||||
log.Fatalf("received: '%v' but expected: '%v'", err, nil)
|
||||
}
|
||||
engine.Bot.ExchangeManager = em
|
||||
engine.Bot.WithdrawManager, err = engine.SetupWithdrawManager(em, nil, true)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user