/// <summary> /// /// </summary> public RedisCacheService(RedisConfig redisConfig, ICollection <IJsonProvider> jsonProviders) { _jsonProvider = InjectionSelectionCommon.GetImplement(jsonProviders); ValidationCommon.Check(redisConfig, "redis配置异常", HttpStatus.Err.Name); new RedisConfigValidator().Validate(redisConfig).Check(); _prefix = redisConfig.Name; CsRedisHelper.InitializeConfiguration(redisConfig); }
/// <summary> /// 短信服务 /// </summary> public SmsService(AliSmsConfig smsConfig, ICollection <IJsonProvider> jsonProviders, ICollection <IXmlProvider> xmlProviders) { _smsConfig = smsConfig; _jsonProvider = InjectionSelectionCommon.GetImplement(jsonProviders); _xmlProvider = InjectionSelectionCommon.GetImplement(xmlProviders); ValidationCommon.Check(smsConfig, "请完善阿里云短信配置信息", HttpStatus.Err.Name); }
/// <summary> /// 服务注册 /// </summary> /// <param name="consulConfig">配置信息</param> /// <param name="cancellationToken"></param> /// <returns></returns> private static void UseConsul(this ConsulConfig consulConfig, CancellationToken cancellationToken) { ValidationCommon.Check(consulConfig.ApiServiceConfig, "consul service 配置异常", HttpStatus.Err.Name); ValidationCommon.Check(consulConfig.ApiServiceHealthyConfig, "consul healthy service 配置异常", HttpStatus.Err.Name); var consulClient = new ConsulClient(x => { x.Address = new Uri(consulConfig.ConsulClientAddress); if (!string.IsNullOrEmpty(consulConfig.ApiServiceConfig.Token)) { x.Token = consulConfig.ApiServiceConfig.Token; } if (!string.IsNullOrEmpty(consulConfig.ApiServiceConfig.Datacenter)) { x.Datacenter = consulConfig.ApiServiceConfig.Datacenter; } }); //请求注册的 Consul 地址 var httpCheck = new AgentServiceCheck() { DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(consulConfig.ApiServiceHealthyConfig.RegisterTime), //服务启动多久后注册 Interval = TimeSpan.FromSeconds(consulConfig.ApiServiceHealthyConfig .CheckIntervalTime), //健康检查时间间隔,或者称为心跳间隔 HTTP = consulConfig.ApiServiceHealthyConfig.CheckApi, //健康检查地址 Timeout = TimeSpan.FromSeconds(consulConfig.ApiServiceHealthyConfig.TimeOutTime) }; // Register service with consul var registration = new AgentServiceRegistration() { Checks = new[] { httpCheck }, ID = string.IsNullOrEmpty(consulConfig.ApiServiceConfig.Id) ? $"{consulConfig.ApiServiceConfig.Name}:{consulConfig.ApiServiceConfig.Port}" : consulConfig.ApiServiceConfig.Id, Name = consulConfig.ApiServiceConfig.Name, Address = consulConfig.ApiServiceConfig.Ip, Port = consulConfig.ApiServiceConfig.Port, Tags = consulConfig.ApiServiceConfig.Tags == null || consulConfig.ApiServiceConfig.Tags.Length == 0 ? new[] { $"urlprefix-/{consulConfig.ApiServiceConfig.Name}" } : consulConfig.ApiServiceConfig.Tags //添加 urlprefix-/servicename 格式的 tag 标签,以便 Fabio 识别 }; consulClient.Agent.ServiceRegister(registration) .Wait(); //服务启动时注册,内部实现其实就是使用 Consul API 进行注册(HttpClient发起) cancellationToken.Register(() => { consulClient.Agent.ServiceDeregister(registration.ID, cancellationToken) .Wait(cancellationToken); //服务停止时取消注册 }); }
/// <summary> /// 加载七牛云存储 /// </summary> /// <param name="services"></param> /// <param name="func">委托</param> public static IServiceCollection AddQiNiuStorage(this IServiceCollection services, Func <QiNiuStorageConfig> func) { StartUp.Run(); var qiNiuConfig = func.Invoke(); ValidationCommon.Check(qiNiuConfig, "七牛云存储配置异常", HttpStatus.Err.Name); services.AddSingleton(qiNiuConfig); return(services); }
/// <summary> /// 加载阿里云oss服务 /// </summary> /// <param name="services"></param> /// <param name="func">委托</param> public static IServiceCollection AddAliYunStorage(this IServiceCollection services, Func <ALiYunStorageConfig> func) { StartUp.Run(); var aliyunConfig = func.Invoke(); ValidationCommon.Check(aliyunConfig, "阿里云存储配置异常", HttpStatus.Err.Name); services.AddSingleton(aliyunConfig); return(services); }
/// <summary> /// 短信服务 /// </summary> public SmsProvider(AliSmsConfig smsConfig, ICollection <IJsonProvider> jsonProviders) : base(smsConfig) { _jsonProvider = InjectionSelectionCommon.GetImplement(jsonProviders); ValidationCommon.Check(smsConfig, "请完善阿里云短信配置信息", HttpStatus.Err.Name); }
/// <summary> /// 基类UCloud实现 /// </summary> public BaseStorageProvider(ICollection <ILogService> logServices, UCloudStorageConfig uCloudConfig) { LogService = InjectionSelectionCommon.GetImplement(logServices); UCloudConfig = uCloudConfig; ValidationCommon.Check(uCloudConfig, "Uc云存储配置异常", HttpStatus.Err.Name); }
/// <summary> /// 基类UCloud实现 /// </summary> public BaseStorageProvider(ILogger logger, UCloudStorageConfig uCloudConfig) { _logger = logger; UCloudConfig = uCloudConfig; ValidationCommon.Check(uCloudConfig, "Uc云存储配置异常", HttpStatus.Err.Name); }
/// <summary> /// /// </summary> public BaseStorageProvider(QiNiuStorageConfig qiNiuConfig) { _qiNiuConfig = qiNiuConfig; ValidationCommon.Check(qiNiuConfig, "七牛云存储配置异常", HttpStatus.Err.Name); }