示例#1
0
        public static IWorkIdCreateStrategyBuilder AddConsulWorkIdCreateStrategy(this IWorkIdCreateStrategyBuilder hostBuilder, IConfiguration configuration, string AppId)
        {
            var config = configuration.Get <ConsulConfig>();

            hostBuilder.Services.AddSingleton <IConsulClient>(a =>
            {
                var _client = new ConsulClient(delegate(ConsulClientConfiguration obj)
                {
                    obj.Address    = new Uri("http://" + config.SERVICE_REGISTRY_ADDRESS + ":" + config.SERVICE_REGISTRY_PORT);
                    obj.Datacenter = config.SERVICE_REGION;
                    obj.Token      = config.SERVICE_REGISTRY_TOKEN;
                });

                return(_client);
            });

            hostBuilder.Services.AddSingleton <IWorkIdCreateStrategy>(sp =>
            {
                var consulClient = sp.GetService <IConsulClient>();
                var strategy     = new ConsulWorkIdCreateStrategy(consulClient, AppId);
                return(strategy);
            });

            return(hostBuilder);
        }
示例#2
0
        public static IWorkIdCreateStrategyBuilder AddHostNameWorkIdCreateStrategy(this IWorkIdCreateStrategyBuilder hostBuilder)
        {
            hostBuilder.Services.AddSingleton <IWorkIdCreateStrategy>(sp =>
            {
                var strategy = new HostNameWorkIdCreateStrategy();
                return(strategy);
            });

            return(hostBuilder);
        }
示例#3
0
        public static IWorkIdCreateStrategyBuilder AddStaticWorkIdCreateStrategy(this IWorkIdCreateStrategyBuilder hostBuilder, int WorkId)
        {
            hostBuilder.Services.AddSingleton <IWorkIdCreateStrategy>(sp =>
            {
                var strategy = new StaticWorkIdCreateStrategy(WorkId);
                return(strategy);
            });

            return(hostBuilder);
        }
示例#4
0
        public static IWorkIdCreateStrategyBuilder AddConsulWorkIdCreateStrategy(this IWorkIdCreateStrategyBuilder hostBuilder, string AppId)
        {
            hostBuilder.Services.AddSingleton <IWorkIdCreateStrategy>(sp =>
            {
                var consulClient = sp.GetService <IConsulClient>();
                var strategy     = new ConsulWorkIdCreateStrategy(consulClient, AppId);
                return(strategy);
            });

            return(hostBuilder);
        }