rename and simplify import

This commit is contained in:
chiahung 2023-10-30 17:17:36 +08:00
parent 671772a767
commit d33240ec83
2 changed files with 17 additions and 17 deletions

View File

@ -5,10 +5,9 @@ import (
"errors" "errors"
"strconv" "strconv"
backoff2 "github.com/cenkalti/backoff/v4" "github.com/cenkalti/backoff/v4"
"github.com/c9s/bbgo/pkg/types" "github.com/c9s/bbgo/pkg/types"
"github.com/c9s/bbgo/pkg/util/backoff"
) )
type advancedOrderCancelService interface { type advancedOrderCancelService interface {
@ -18,7 +17,7 @@ type advancedOrderCancelService interface {
} }
func QueryOrderUntilFilled(ctx context.Context, queryOrderService types.ExchangeOrderQueryService, symbol string, orderId uint64) (o *types.Order, err error) { func QueryOrderUntilFilled(ctx context.Context, queryOrderService types.ExchangeOrderQueryService, symbol string, orderId uint64) (o *types.Order, err error) {
err = backoff.RetryGeneral(ctx, func() (err2 error) { var op = func() (err2 error) {
o, err2 = queryOrderService.QueryOrder(ctx, types.OrderQuery{ o, err2 = queryOrderService.QueryOrder(ctx, types.OrderQuery{
Symbol: symbol, Symbol: symbol,
OrderID: strconv.FormatUint(orderId, 10), OrderID: strconv.FormatUint(orderId, 10),
@ -33,24 +32,25 @@ func QueryOrderUntilFilled(ctx context.Context, queryOrderService types.Exchange
} }
return err2 return err2
}) }
err = GeneralBackoff(ctx, op)
return o, err return o, err
} }
func GeneralBackoff(ctx context.Context, op backoff2.Operation) (err error) { func GeneralBackoff(ctx context.Context, op backoff.Operation) (err error) {
err = backoff2.Retry(op, backoff2.WithContext( err = backoff.Retry(op, backoff.WithContext(
backoff2.WithMaxRetries( backoff.WithMaxRetries(
backoff2.NewExponentialBackOff(), backoff.NewExponentialBackOff(),
101), 101),
ctx)) ctx))
return err return err
} }
func GeneralBackoffLite(ctx context.Context, op backoff2.Operation) (err error) { func GeneralLiteBackoff(ctx context.Context, op backoff.Operation) (err error) {
err = backoff2.Retry(op, backoff2.WithContext( err = backoff.Retry(op, backoff.WithContext(
backoff2.WithMaxRetries( backoff.WithMaxRetries(
backoff2.NewExponentialBackOff(), backoff.NewExponentialBackOff(),
5), 5),
ctx)) ctx))
return err return err
@ -72,7 +72,7 @@ func QueryOpenOrdersUntilSuccessfulLite(ctx context.Context, ex types.Exchange,
return err2 return err2
} }
err = GeneralBackoffLite(ctx, op) err = GeneralLiteBackoff(ctx, op)
return openOrders, err return openOrders, err
} }

View File

@ -89,8 +89,8 @@ func (s *Strategy) recoverActiveOrdersPeriodically(ctx context.Context) {
func syncActiveOrders(ctx context.Context, opts SyncActiveOrdersOpts) error { func syncActiveOrders(ctx context.Context, opts SyncActiveOrdersOpts) error {
opts.logger.Infof("[ActiveOrderRecover] syncActiveOrders") opts.logger.Infof("[ActiveOrderRecover] syncActiveOrders")
// do not sync orders which is updated in 3 min, because we may receive from websocket and handle it twice // only sync orders which is updated over 3 min, because we may receive from websocket and handle it twice
doNotSyncAfter := time.Now().Add(-3 * time.Minute) syncBefore := time.Now().Add(-3 * time.Minute)
openOrders, err := retry.QueryOpenOrdersUntilSuccessfulLite(ctx, opts.exchange, opts.activeOrderBook.Symbol) openOrders, err := retry.QueryOpenOrdersUntilSuccessfulLite(ctx, opts.exchange, opts.activeOrderBook.Symbol)
if err != nil { if err != nil {
@ -117,7 +117,7 @@ func syncActiveOrders(ctx context.Context, opts SyncActiveOrdersOpts) error {
delete(openOrdersMap, activeOrder.OrderID) delete(openOrdersMap, activeOrder.OrderID)
} else { } else {
opts.logger.Infof("found active order #%d is not in the open orders, updating...", activeOrder.OrderID) opts.logger.Infof("found active order #%d is not in the open orders, updating...", activeOrder.OrderID)
if activeOrder.UpdateTime.After(doNotSyncAfter) { if activeOrder.UpdateTime.After(syncBefore) {
opts.logger.Infof("active order #%d is updated in 3 min, skip updating...", activeOrder.OrderID) opts.logger.Infof("active order #%d is updated in 3 min, skip updating...", activeOrder.OrderID)
continue continue
} }
@ -137,7 +137,7 @@ func syncActiveOrders(ctx context.Context, opts SyncActiveOrdersOpts) error {
for _, openOrder := range openOrdersMap { for _, openOrder := range openOrdersMap {
opts.logger.Infof("found open order #%d is not in active orderbook, updating...", openOrder.OrderID) opts.logger.Infof("found open order #%d is not in active orderbook, updating...", openOrder.OrderID)
// we don't add open orders into active orderbook if updated in 3 min, because we may receive message from websocket and add it twice. // we don't add open orders into active orderbook if updated in 3 min, because we may receive message from websocket and add it twice.
if openOrder.UpdateTime.After(doNotSyncAfter) { if openOrder.UpdateTime.After(syncBefore) {
opts.logger.Infof("open order #%d is updated in 3 min, skip updating...", openOrder.OrderID) opts.logger.Infof("open order #%d is updated in 3 min, skip updating...", openOrder.OrderID)
continue continue
} }