Exemple #1
0
        public HybridCachingTest()
        {
            _namespace = "hybrid";

            var options = new HybridCachingOptions
            {
                EnableLogging                 = false,
                TopicName                     = "test_topic",
                LocalCacheProviderName        = "m1",
                DistributedCacheProviderName  = "myredis",
                BusRetryCount                 = 1,
                DefaultExpirationForTtlFailed = 60
            };

            IServiceCollection services = new ServiceCollection();

            services.AddEasyCaching(option =>
            {
                option.UseInMemory("m1");
                option.UseInMemory("m2");

                option.UseRedis(config =>
                {
                    config.DBConfig.Endpoints.Add(new Core.Configurations.ServerEndPoint("127.0.0.1", 6379));
                    config.DBConfig.Database = 5;
                }, "myredis");

                option.UseHybrid(config =>
                {
                    config.EnableLogging                = false;
                    config.TopicName                    = "test_topic";
                    config.LocalCacheProviderName       = "m1";
                    config.DistributedCacheProviderName = "myredis";
                });

                option.WithRedisBus(config =>
                {
                    config.Endpoints.Add(new Core.Configurations.ServerEndPoint("127.0.0.1", 6379));
                    config.Database = 6;
                });
            });

            IServiceProvider serviceProvider = services.BuildServiceProvider();

            factory = serviceProvider.GetService <IEasyCachingProviderFactory>();

            var bus = serviceProvider.GetService <IEasyCachingBus>();

            hybridCaching_1 = serviceProvider.GetService <IHybridCachingProvider>();

            fakeBus         = A.Fake <IEasyCachingBus>();
            fakeFactory     = A.Fake <IEasyCachingProviderFactory>();
            fakeDisProvider = A.Fake <FakeDistributedCachingProvider>();
            var myOptions = Options.Create(options);

            FakeCreatProvider();
            fakeHybrid = new HybridCachingProvider("h1", myOptions.Value, fakeFactory, fakeBus);
        }
Exemple #2
0
        /// <summary>
        /// Uses the hybrid (read config from configuration file).
        /// </summary>
        /// <param name="options">Options.</param>
        /// <param name="configuration">The Configuraion</param>
        /// <param name="name">The name of this hybrid provider instance.</param>
        /// <param name="sectionName">The section name in the configuration file.</param>
        public static EasyCachingOptions UseHybrid(
            this EasyCachingOptions options
            , IConfiguration configuration
            , string name        = EasyCachingConstValue.DefaultHybridName
            , string sectionName = EasyCachingConstValue.HybridSection
            )
        {
            var config        = configuration.GetSection(sectionName);
            var hybridOptions = new HybridCachingOptions();

            config.Bind(hybridOptions);

            void configure(HybridCachingOptions x)
            {
                x.EnableLogging = hybridOptions.EnableLogging;
                x.DefaultExpirationForTtlFailed = hybridOptions.DefaultExpirationForTtlFailed;
                x.DistributedCacheProviderName  = hybridOptions.DistributedCacheProviderName;
                x.LocalCacheProviderName        = hybridOptions.LocalCacheProviderName;
                x.TopicName = hybridOptions.TopicName;
            }

            return(options.UseHybrid(configure, name));
        }