diff --git a/Binance.TradeRobot.Business/Business/OrderPublishBusiness/Spot/D21OrderPublishBusiness.cs b/Binance.TradeRobot.Business/Business/OrderPublishBusiness/Spot/D21OrderPublishBusiness.cs index 93eb185..ea4b506 100644 --- a/Binance.TradeRobot.Business/Business/OrderPublishBusiness/Spot/D21OrderPublishBusiness.cs +++ b/Binance.TradeRobot.Business/Business/OrderPublishBusiness/Spot/D21OrderPublishBusiness.cs @@ -15,9 +15,11 @@ namespace Binance.TradeRobot.Business { public Enums.TradePolicy TradePolicy => Enums.TradePolicy.D21; - public D21OrderPublishBusiness(IFreeSql fsql, NLogManager logManager, IIdGenerator idGenerator, IMemoryCache memoryCache, DingBusiness dingBusiness) : base(fsql, logManager, idGenerator, memoryCache, dingBusiness) + public RobotBusiness robotBusiness; + + public D21OrderPublishBusiness(IFreeSql fsql, NLogManager logManager, IIdGenerator idGenerator, IMemoryCache memoryCache, DingBusiness dingBusiness, RobotBusiness robotBusiness) : base(fsql, logManager, idGenerator, memoryCache, dingBusiness) { - + this.robotBusiness = robotBusiness; } @@ -38,6 +40,8 @@ namespace Binance.TradeRobot.Business Content = $"收到订单推送,订单号:{spotOrderPublishInfo.OrderId},订单方向:{spotOrderPublishInfo.TradeDirection},订单类型:{spotOrderPublishInfo.OrderType},订单状态:{spotOrderPublishInfo.SpotOrderState},本次成交额:{spotOrderPublishInfo.LastTradeAmount}" }); + + } catch (Exception ex) { diff --git a/Binance.TradeRobot.Business/Business/RobotBusiness.cs b/Binance.TradeRobot.Business/Business/RobotBusiness.cs index 76eb4ca..2d02513 100644 --- a/Binance.TradeRobot.Business/Business/RobotBusiness.cs +++ b/Binance.TradeRobot.Business/Business/RobotBusiness.cs @@ -17,11 +17,12 @@ namespace Binance.TradeRobot.Business [BatchRegistration(ServiceLifetime.Singleton, RegistrationType.Self)] public class RobotBusiness : BaseBusiness { - private GlobalContext globalContext; + private Lazy globalContextLazy; + private GlobalContext globalContext => globalContextLazy.Value; - public RobotBusiness(IFreeSql fsql, NLogManager logManager, IIdGenerator idGenerator, IMemoryCache memoryCache, GlobalContext globalContext) : base(fsql, logManager, idGenerator, memoryCache) + public RobotBusiness(IFreeSql fsql, NLogManager logManager, IIdGenerator idGenerator, IMemoryCache memoryCache, IServiceProvider serviceProvider) : base(fsql, logManager, idGenerator, memoryCache) { - this.globalContext = globalContext; + this.globalContextLazy = new Lazy(() => serviceProvider.GetService()); } /// diff --git a/Binance.TradeRobot.Business/Business/SingalBusiness.cs b/Binance.TradeRobot.Business/Business/SingalBusiness.cs index 6a6156d..761b01b 100644 --- a/Binance.TradeRobot.Business/Business/SingalBusiness.cs +++ b/Binance.TradeRobot.Business/Business/SingalBusiness.cs @@ -1,6 +1,5 @@ using Binance.TradeRobot.Common.DI; using Binance.TradeRobot.Model.Base; -using Binance.TradeRobot.Model.Db; using Binance.TradeRobot.Model.Dto; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; @@ -65,12 +64,12 @@ namespace Binance.TradeRobot.Business taskSchedulerManager.SingalTaskScheduler); break; case Enums.SingalType.多交叉: - //Task.Factory.StartNew(() => d21TradeBusiness.LongCross(d21SingalRequest, robot, false, symbolInfo), - // CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SingalTaskScheduler); + Task.Factory.StartNew(() => d21TradeBusiness.LongCross(d21SingalRequest, robot, false, symbolInfo), + CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SingalTaskScheduler); break; case Enums.SingalType.空交叉: - //Task.Factory.StartNew(() => d21TradeBusiness.ShortCross(d21SingalRequest, robot, false, symbolInfo), - // CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SingalTaskScheduler); + Task.Factory.StartNew(() => d21TradeBusiness.ShortCross(d21SingalRequest, robot, false, symbolInfo), + CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SingalTaskScheduler); break; } } diff --git a/Binance.TradeRobot.Business/GlobalContext.cs b/Binance.TradeRobot.Business/GlobalContext.cs index 42ba067..bcece0a 100644 --- a/Binance.TradeRobot.Business/GlobalContext.cs +++ b/Binance.TradeRobot.Business/GlobalContext.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using SDKAdapter.Model; using SDKAdapter.WebSockets.Market; using SDKAdapter.WebSockets.Order.Spot; +using System; using System.Collections.Generic; using System.Linq; @@ -15,14 +16,17 @@ namespace Binance.TradeRobot.Business private NLogManager logManager; private IDictionary spotMarketWebSocketClientDictionary; private IDictionary spotOrderWebSocketClientDictionary; - private IEnumerable spotOrderPublishBusinessList; - public GlobalContext(NLogManager logManager, IEnumerable spotOrderPublishBusinessList) + private Lazy> spotOrderPublishBusinessListLazy; + private IEnumerable spotOrderPublishBusinessList => spotOrderPublishBusinessListLazy.Value; + + public GlobalContext(NLogManager logManager, IServiceProvider serviceProvider) { this.logManager = logManager; spotMarketWebSocketClientDictionary = new Dictionary(); spotOrderWebSocketClientDictionary = new Dictionary(); - this.spotOrderPublishBusinessList = spotOrderPublishBusinessList; + //this.spotOrderPublishBusinessList = spotOrderPublishBusinessList; + this.spotOrderPublishBusinessListLazy = new Lazy>(() => serviceProvider.GetServices()); } ///