Beispiel #1
0
 /// <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);
 }
Beispiel #3
0
        /// <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);
        }
Beispiel #6
0
 /// <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);
 }