コード例 #1
0
    /// <summary>
    /// Initializes a new instance of L1L2RedisCache.
    /// </summary>
    public L1L2RedisCache(
        IMemoryCache l1Cache,
        IOptions <L1L2RedisCacheOptions> l1l2RedisCacheOptionsAccessor,
        Func <IDistributedCache> l2CacheAccessor,
        IMessagePublisher messagePublisher,
        IMessageSubscriber messageSubscriber)
    {
        L1Cache = l1Cache;
        L1L2RedisCacheOptions = l1l2RedisCacheOptionsAccessor.Value;
        L2Cache           = l2CacheAccessor();
        MessagePublisher  = messagePublisher;
        MessageSubscriber = messageSubscriber;

        Database = new Lazy <IDatabase>(() =>
                                        L1L2RedisCacheOptions
                                        .ConnectionMultiplexerFactory()
                                        .GetAwaiter()
                                        .GetResult()
                                        .GetDatabase(
                                            L1L2RedisCacheOptions
                                            .ConfigurationOptions?
                                            .DefaultDatabase ?? -1));

        MessageSubscriber.Subscribe();
    }
コード例 #2
0
    public DefaultMessagePublisher(
        IOptions <JsonSerializerOptions> jsonSerializerOptions,
        IOptions <L1L2RedisCacheOptions> l1L2RedisCacheOptionsOptionsAccessor)
    {
        JsonSerializerOptions = jsonSerializerOptions.Value;
        L1L2RedisCacheOptions = l1L2RedisCacheOptionsOptionsAccessor.Value;

        Subscriber = new Lazy <ISubscriber>(() =>
                                            L1L2RedisCacheOptions
                                            .ConnectionMultiplexerFactory()
                                            .GetAwaiter()
                                            .GetResult()
                                            .GetSubscriber());
    }
コード例 #3
0
    public KeyeventMessageSubscriber(
        IConfigurationVerifier configurationVerifier,
        IMemoryCache l1Cache,
        IOptions <L1L2RedisCacheOptions> l1L2RedisCacheOptionsOptionsAccessor,
        ILogger <KeyeventMessageSubscriber>?logger = null)
    {
        ConfigurationVerifier = configurationVerifier;
        L1Cache = l1Cache;
        L1L2RedisCacheOptions = l1L2RedisCacheOptionsOptionsAccessor.Value;

        Logger = logger;

        Subscriber = new Lazy <ISubscriber>(() =>
                                            L1L2RedisCacheOptions
                                            .ConnectionMultiplexerFactory()
                                            .GetAwaiter()
                                            .GetResult()
                                            .GetSubscriber());
    }