예제 #1
0
        public async Task InitializeAsync()
        {
            var confOpts = ConfigurationOptions.Parse(_connStr);

            _client = await SpiderRedisClient.CreateAsync(confOpts);

            await _client.SubscribeAsync(_channel, DeserializeProxies);
        }
예제 #2
0
        public override async Task RunAsync()
        {
            var conf = DbConfigManager.Default.GetConfig("SqlServerTest", true);

            if (conf == null)
            {
                throw new DbConfigNotFoundException();
            }
            var confOpts = ConfigurationOptions.Parse("localhost:6379");
            var client   = await SpiderRedisClient.CreateAsync(confOpts);
        }
예제 #3
0
        internal static async Task <long> PublishProxiesAsync(IEnumerable <SpiderProxyUriEntity> proxies, DbConfig redisConfig, string redisChannel = "SpiderProxyFetcher", bool useCache = true)
        {
            string            connStr     = redisConfig.ConnectionString;
            SpiderRedisClient redisClient = useCache ?
                                            _redisClientCache.GetOrAdd(connStr, str => SpiderRedisClient.Create(str))
                                : await SpiderRedisClient.CreateAsync(connStr).ConfigureAwait(false);

            string json   = JsonConvert.SerializeObject(proxies);
            long   result = await redisClient.PublishAsync(redisChannel, json);

            if (!useCache)
            {
                redisClient.Disable();
            }
            return(result);
        }