public FileLockerRedialManager(INetworkValidater networkValidater, IRedialer redialer)
 {
     _lockerFilePath  = Path.Combine(SpiderEnviroment.GlobalDirectory, "redialer.lock");
     AtomicExecutor   = new FileLockerAtomicExecutor(this);
     NetworkValidater = networkValidater;
     Redialer         = redialer;
 }
        public RedisRedialManager(IDatabase db, INetworkValidater validater, IRedialer redialer, ILogService logger)
        {
            Logger = logger;

            Db = db;
            AtomicExecutor = new RedisAtomicExecutor(this);
            NetworkValidater = validater;
            Redialer = redialer;
        }
Esempio n. 3
0
        public RedisRedialManager(IDatabase db, INetworkValidater validater, IRedialer redialer, ILogService logger)
        {
            Logger = logger;

            Db               = db;
            AtomicExecutor   = new RedisAtomicExecutor(this);
            NetworkValidater = validater;
            Redialer         = redialer;
        }
Esempio n. 4
0
        public RedisRedialManager(string host, string password, INetworkValidater validater, IRedialer redialer, ILogService logger)
        {
            Logger = logger;
            if (!string.IsNullOrEmpty(host))
            {
                RedisHost = host;
            }
            else
            {
                throw new RedialException("Redis host should not be null.");
            }

            if (!string.IsNullOrEmpty(password))
            {
                Password = password;
            }
            else
            {
                Password = null;
            }

            var confiruation = new ConfigurationOptions()
            {
                ServiceName     = "DotnetSpider",
                Password        = password,
                ConnectTimeout  = 5000,
                KeepAlive       = 8,
                ConnectRetry    = 20,
                SyncTimeout     = 65530,
                ResponseTimeout = 65530
            };

#if NET_CORE
            if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                // Lewis: This is a Workaround for .NET CORE can't use EndPoint to create Socket.
                var address = Dns.GetHostAddressesAsync(host).Result.FirstOrDefault();
                if (address == null)
                {
                    throw new Exception("Can't resovle your host: " + host);
                }
                confiruation.EndPoints.Add(new IPEndPoint(address, 6379));
            }
            else
            {
                confiruation.EndPoints.Add(new DnsEndPoint(host, 6379));
            }
#else
            confiruation.EndPoints.Add(new DnsEndPoint(host, 6379));
#endif
            var redis = ConnectionMultiplexer.Connect(confiruation);

            Db               = redis.GetDatabase(3);
            AtomicExecutor   = new RedisAtomicExecutor(this);
            NetworkValidater = validater;
            Redialer         = redialer;
        }
        public RedisRedialManager(string host, string password, INetworkValidater validater, IRedialer redialer, ILogService logger)
        {
            Logger = logger;
            if (!string.IsNullOrEmpty(host))
            {
                RedisHost = host;
            }
            else
            {
                throw new RedialException("Redis host should not be null.");
            }

            if (!string.IsNullOrEmpty(password))
            {
                Password = password;
            }
            else
            {
                Password = null;
            }

            var Redis = ConnectionMultiplexer.Connect(new ConfigurationOptions()
            {
                ServiceName = "DotnetSpider",
                Password = password,
                ConnectTimeout = 65530,
                KeepAlive = 8,
                ConnectRetry = 20,
                SyncTimeout = 65530,
                ResponseTimeout = 65530,
                EndPoints =
                { host, "6379" }
            });
            Db = Redis.GetDatabase(3);
            AtomicExecutor = new RedisAtomicExecutor(this);
            NetworkValidater = validater;
            Redialer = redialer;
        }
Esempio n. 6
0
 public override void SetRedialManager(INetworkValidater networkValidater, IRedialer redialer)
 {
     NetworkProxyManager.Current.Register(new RedialExecutor(new Redial.RedialManager.RedisRedialManager(Host, Password, networkValidater, redialer, null)));
 }
Esempio n. 7
0
 public override void SetRedialManager(INetworkValidater networkValidater, IRedialer redialer)
 {
     NetworkProxyManager.Current.Register(new RedialExecutor(new FileLockerRedialManager(networkValidater, redialer)));
 }
Esempio n. 8
0
 public abstract void SetRedialManager(INetworkValidater networkValidater, IRedialer redialer);