mirror of
				https://gitee.com/ThingsGateway/ThingsGateway.git
				synced 2025-10-31 07:33:58 +08:00 
			
		
		
		
	后台启动时Furion RootServices NULL值
This commit is contained in:
		| @@ -113,7 +113,7 @@ namespace ThingsGateway.Mqtt | ||||
|             using var serviceScope = _scopeFactory.CreateScope(); | ||||
|             _globalCollectDeviceData = serviceScope.ServiceProvider.GetService<GlobalCollectDeviceData>(); | ||||
|             _rpcCore = serviceScope.ServiceProvider.GetService<RpcCore>(); | ||||
|             collectDeviceHostService = serviceScope.ServiceProvider.GetBackgroundService<CollectDeviceHostService>(); | ||||
|             collectDeviceHostService = serviceScope.GetBackgroundService<CollectDeviceHostService>(); | ||||
|  | ||||
|             _globalCollectDeviceData.CollectDevices.ForEach(a => | ||||
|             { | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
|         } | ||||
|  | ||||
|         /// <inheritdoc/> | ||||
|         [OperDesc("编辑网关配置项")] | ||||
|         public async Task EditBatch(List<DevConfig> devConfigs) | ||||
|         { | ||||
|             if (devConfigs.Count > 0) | ||||
|   | ||||
| @@ -29,8 +29,8 @@ namespace ThingsGateway.Web.Foundation | ||||
|         { | ||||
|             _scopeFactory = scopeFactory; | ||||
|             using var serviceScope = _scopeFactory.CreateScope(); | ||||
|             _collectDeviceHostService = serviceScope.ServiceProvider.GetBackgroundService<CollectDeviceHostService>(); | ||||
|             _alarmHostService = serviceScope.ServiceProvider.GetBackgroundService<AlarmHostService>(); | ||||
|             _collectDeviceHostService = serviceScope.GetBackgroundService<CollectDeviceHostService>(); | ||||
|             _alarmHostService = serviceScope.GetBackgroundService<AlarmHostService>(); | ||||
|         } | ||||
|  | ||||
|         AlarmHostService _alarmHostService { get; set; } | ||||
|   | ||||
| @@ -9,16 +9,16 @@ namespace ThingsGateway.Web.Foundation | ||||
|     /// </summary> | ||||
|     public static class ServiceExtension | ||||
|     { | ||||
|         ///// <summary> | ||||
|         ///// 获取后台服务 | ||||
|         ///// </summary> | ||||
|         //public static T GetBackgroundService<T>(this IServiceScopeFactory @this) where T : class, IHostedService | ||||
|         //{ | ||||
|         //    var hostedService = @this.CreateScope().ServiceProvider.GetServices<IHostedService>().FirstOrDefault(it => it is T) as T; | ||||
|         //    return hostedService; | ||||
|         //} | ||||
|         /// <summary> | ||||
|         /// 获取后台服务 | ||||
|         /// IServiceScope获取后台服务 | ||||
|         /// </summary> | ||||
|         public static T GetBackgroundService<T>(this IServiceScope @this) where T : class, IHostedService | ||||
|         { | ||||
|             var hostedService = @this.ServiceProvider.GetServices<IHostedService>().FirstOrDefault(it => it is T) as T; | ||||
|             return hostedService; | ||||
|         } | ||||
|         /// <summary> | ||||
|         /// RootServices获取后台服务 | ||||
|         /// </summary> | ||||
|         public static T GetBackgroundService<T>(this object @this) where T : class, IHostedService | ||||
|         { | ||||
|   | ||||
| @@ -122,11 +122,12 @@ public class CollectDeviceHostService : BackgroundService | ||||
|     /// </summary> | ||||
|     public void StartOtherHostService() | ||||
|     { | ||||
|         var alarmHostService = _scopeFactory.GetBackgroundService<AlarmHostService>(); | ||||
|         var valueHisHostService = _scopeFactory.GetBackgroundService<ValueHisHostService>(); | ||||
|         using var scope = _scopeFactory.CreateScope(); | ||||
|         var alarmHostService = scope.GetBackgroundService<AlarmHostService>(); | ||||
|         var valueHisHostService = scope.GetBackgroundService<ValueHisHostService>(); | ||||
|         alarmHostService?.Start(); | ||||
|         valueHisHostService?.Start(); | ||||
|         var uploadDeviceHostService = _scopeFactory.GetBackgroundService<UploadDeviceHostService>(); | ||||
|         var uploadDeviceHostService = scope.GetBackgroundService<UploadDeviceHostService>(); | ||||
|         uploadDeviceHostService.StartDeviceThread(); | ||||
|     } | ||||
|     /// <summary> | ||||
| @@ -136,13 +137,14 @@ public class CollectDeviceHostService : BackgroundService | ||||
|     { | ||||
|         if (oldDeviceRuntime?.Count > 0) | ||||
|         { | ||||
|             using var scope = _scopeFactory.CreateScope(); | ||||
|  | ||||
|  | ||||
|             var alarmHostService = _scopeFactory.GetBackgroundService<AlarmHostService>(); | ||||
|             var valueHisHostService = _scopeFactory.GetBackgroundService<ValueHisHostService>(); | ||||
|             var alarmHostService = scope.GetBackgroundService<AlarmHostService>(); | ||||
|             var valueHisHostService = scope.GetBackgroundService<ValueHisHostService>(); | ||||
|             alarmHostService?.Stop(oldDeviceRuntime); | ||||
|             valueHisHostService?.Stop(oldDeviceRuntime); | ||||
|             var uploadDeviceHostService = _scopeFactory.GetBackgroundService<UploadDeviceHostService>(); | ||||
|             var uploadDeviceHostService = scope.GetBackgroundService<UploadDeviceHostService>(); | ||||
|             uploadDeviceHostService.RemoveDeviceThread(); | ||||
|  | ||||
|         } | ||||
|   | ||||
| @@ -29,7 +29,7 @@ public class RpcCore : ISingleton | ||||
|         _logger = logger; | ||||
|         using var serviceScope = scopeFactory.CreateScope(); | ||||
|         _globalCollectDeviceData = serviceScope.ServiceProvider.GetService<GlobalCollectDeviceData>(); | ||||
|         _collectDeviceHostService = serviceScope.ServiceProvider.GetBackgroundService<CollectDeviceHostService>(); | ||||
|         _collectDeviceHostService = serviceScope.GetBackgroundService<CollectDeviceHostService>(); | ||||
|         Task.Factory.StartNew(RpcLogInsert); | ||||
|     } | ||||
|     private ConcurrentQueue<RpcLog> _logQueues = new(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 2248356998 qq.com
					2248356998 qq.com