From b71030c5db033df2e394514d2b01b7e8ec4faa90 Mon Sep 17 00:00:00 2001 From: Edwin Date: Tue, 25 Jul 2023 15:09:57 +0800 Subject: [PATCH] pkg: return err if rate limit err --- pkg/exchange/binance/cancel_replace.go | 1 + pkg/exchange/binance/exchange.go | 9 ++++++--- pkg/interact/telegram.go | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/exchange/binance/cancel_replace.go b/pkg/exchange/binance/cancel_replace.go index c993c66d0..e98090a48 100644 --- a/pkg/exchange/binance/cancel_replace.go +++ b/pkg/exchange/binance/cancel_replace.go @@ -12,6 +12,7 @@ import ( func (e *Exchange) CancelReplace(ctx context.Context, cancelReplaceMode types.CancelReplaceModeType, o types.Order) (*types.Order, error) { if err := orderLimiter.Wait(ctx); err != nil { log.WithError(err).Errorf("order rate limiter wait error") + return nil, err } if e.IsFutures || e.IsMargin { diff --git a/pkg/exchange/binance/exchange.go b/pkg/exchange/binance/exchange.go index 43d7554af..9f8534fc8 100644 --- a/pkg/exchange/binance/exchange.go +++ b/pkg/exchange/binance/exchange.go @@ -764,8 +764,9 @@ func (e *Exchange) QueryClosedOrders(ctx context.Context, symbol string, since, } */ - if err := orderLimiter.Wait(ctx); err != nil { + if err = orderLimiter.Wait(ctx); err != nil { log.WithError(err).Errorf("order rate limiter wait error") + return nil, err } log.Infof("querying closed orders %s from %s <=> %s ...", symbol, since, until) @@ -822,8 +823,9 @@ func (e *Exchange) QueryClosedOrders(ctx context.Context, symbol string, since, } func (e *Exchange) CancelOrders(ctx context.Context, orders ...types.Order) (err error) { - if err := orderLimiter.Wait(ctx); err != nil { + if err = orderLimiter.Wait(ctx); err != nil { log.WithError(err).Errorf("order rate limiter wait error") + return err } if e.IsFutures { @@ -1086,8 +1088,9 @@ func (e *Exchange) submitSpotOrder(ctx context.Context, order types.SubmitOrder) } func (e *Exchange) SubmitOrder(ctx context.Context, order types.SubmitOrder) (createdOrder *types.Order, err error) { - if err := orderLimiter.Wait(ctx); err != nil { + if err = orderLimiter.Wait(ctx); err != nil { log.WithError(err).Errorf("order rate limiter wait error") + return nil, err } if e.IsMargin { diff --git a/pkg/interact/telegram.go b/pkg/interact/telegram.go index c2a45a002..4635cbe39 100644 --- a/pkg/interact/telegram.go +++ b/pkg/interact/telegram.go @@ -73,6 +73,7 @@ func (r *TelegramReply) Send(message string) { for _, split := range splits { if err := sendLimiter.Wait(ctx); err != nil { log.WithError(err).Errorf("telegram send limit exceeded") + return } checkSendErr(r.bot.Send(r.session.Chat, split)) } @@ -175,6 +176,7 @@ func (tm *Telegram) Start(ctx context.Context) { for i, split := range splits { if err := sendLimiter.Wait(ctx); err != nil { log.WithError(err).Errorf("telegram send limit exceeded") + return } if i == len(splits)-1 { // only set menu on the last message