Exemplo n.º 1
0
        protected ProxyApi(NetConfiguration netConfiguration, ProxyConfiguration proxyConfiguration,
                           CommonConfiguration commonConfiguration, TimeoutConfiguration timeoutConfiguration)
        {
            Contract.Requires(netConfiguration != null);
            Contract.Requires(proxyConfiguration != null);
            Contract.Requires(commonConfiguration != null);
            Contract.Requires(timeoutConfiguration != null);

            _isStarted = false;
            _isBuild   = false;
            _isDispose = false;

            var server = new ServerId(netConfiguration.Host, netConfiguration.Port);
            var queue  = new QueueConfiguration(commonConfiguration.CountThreads, commonConfiguration.QueueSize);

            var connection = new ConnectionConfiguration(netConfiguration.WcfServiceName,
                                                         netConfiguration.CountConnectionsToSingleServer);
            var proxyCacheConfiguration  = new ProxyCacheConfiguration(proxyConfiguration.ChangeDistributorTimeoutSec);
            var proxyCacheConfiguration2 = new ProxyCacheConfiguration(proxyConfiguration.SyncOperationsTimeoutSec);
            var netReceiveConfiguration  = new NetReceiverConfiguration(netConfiguration.Port, netConfiguration.Host,
                                                                        netConfiguration.WcfServiceName);
            var async   = new AsyncTasksConfiguration(proxyConfiguration.AsyncUpdateTimeout);
            var ping    = new AsyncTasksConfiguration(proxyConfiguration.AsyncPingTimeout);
            var timeout = new ConnectionTimeoutConfiguration(timeoutConfiguration.OpenTimeout,
                                                             timeoutConfiguration.SendTimeout);

            _proxySystem = new ProxySystem(server, queue, connection,
                                           proxyCacheConfiguration, proxyCacheConfiguration2, netReceiveConfiguration, async, ping, timeout);

            _apis = new Dictionary <string, ProxyHandlerBase>();
        }
Exemplo n.º 2
0
 public CollectorGate(string tableName, DbFactory dbFactory,
                      CollectorConfiguration collectorConfiguration, CollectorNetConfiguration netConfiguration,
                      CommonConfiguration commonConfiguration, TimeoutConfiguration timeoutConfiguration)
     : base(collectorConfiguration, netConfiguration, commonConfiguration, timeoutConfiguration)
 {
     Contract.Requires(!string.IsNullOrEmpty(tableName));
     Contract.Requires(_dbFactory != null);
     _tableName = tableName;
     _dbFactory = dbFactory;
 }
Exemplo n.º 3
0
        public static void Start(List <DbFactory> factory, string host, int port, int countReplics)
        {
            var net = new StorageNetConfiguration(host, port, port + 123, "testService", 10);
            var st  = new StorageConfiguration("ServersFile", countReplics, 10, TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(60),
                                               TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(60), false);
            var common  = new CommonConfiguration(4, 10000);
            var timeout = new TimeoutConfiguration(TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(1000));
            var storage = new StorageApi(net, st, common, timeout);

            Wait(storage, factory);
        }
Exemplo n.º 4
0
        public static void Start(IDataProvider <TKey, TValue> dataProvider, List <DbFactory> factory, string[] args = null)
        {
            Tuple <string, int, int> tup = args == null?AskParams() : ReadParams(args);

            var net = new StorageNetConfiguration(tup.Item1, tup.Item2, tup.Item2 + 123, "testService", 10);
            var st  = new StorageConfiguration("ServersFile", tup.Item3, 10, TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(60),
                                               TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(60), false);
            var common  = new CommonConfiguration(4, 10000);
            var timeout = new TimeoutConfiguration(TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(1000));
            var storage = new StorageApi(net, st, common, timeout);

            Wait(storage, factory);
        }
Exemplo n.º 5
0
        public WriterApi(StorageNetConfiguration netConfiguration,
                         StorageConfiguration storageConfiguration, CommonConfiguration commonConfiguration,
                         TimeoutConfiguration timeoutConfiguration, bool isNeedRestore = false,
                         CommonConfiguration restoreConfiguration = null)
        {
            Contract.Requires(netConfiguration != null);
            Contract.Requires(storageConfiguration != null);
            Contract.Requires(commonConfiguration != null);
            Contract.Requires(timeoutConfiguration != null);

            _isStarted = false;
            _isBuild   = false;
            _isDispose = false;

            var server       = new ServerId(netConfiguration.Host, netConfiguration.PortForDitributor);
            var queue        = new QueueConfiguration(commonConfiguration.CountThreads, commonConfiguration.QueueSize);
            var queueRestore = restoreConfiguration == null
                ? new QueueConfiguration(1, 1000)
                : new QueueConfiguration(restoreConfiguration.CountThreads, restoreConfiguration.QueueSize);
            var netReceiveConfiguration = new NetReceiverConfiguration(netConfiguration.PortForDitributor,
                                                                       netConfiguration.Host,
                                                                       netConfiguration.WcfServiceName);
            var netReceiveConfiguration2 = new NetReceiverConfiguration(netConfiguration.PortForCollector,
                                                                        netConfiguration.Host,
                                                                        netConfiguration.WcfServiceName);
            var connection = new ConnectionConfiguration(netConfiguration.WcfServiceName,
                                                         netConfiguration.CountConnectionsToSingleServer);
            var hashMap = new HashMapConfiguration(storageConfiguration.FileWithHashName,
                                                   HashMapCreationMode.ReadFromFile, 1,
                                                   storageConfiguration.CountReplics, HashFileType.Writer);
            var restoreTransfer  = new RestoreModuleConfiguration(1, storageConfiguration.TimeoutSendAnswerInRestore);
            var restoreInitiator = new RestoreModuleConfiguration(storageConfiguration.CountRetryWaitAnswerInRestore,
                                                                  storageConfiguration.TimeoutWaitAnswerInRestore);
            var restoreTimeout = new RestoreModuleConfiguration(-1, storageConfiguration.PeriodStartDelete,
                                                                storageConfiguration.IsForceDelete, storageConfiguration.PeriodDeleteAfterRestore);

            var timeout = new ConnectionTimeoutConfiguration(timeoutConfiguration.OpenTimeout,
                                                             timeoutConfiguration.SendTimeout);

            _writerSystem = new WriterSystem(server, queue, netReceiveConfiguration,
                                             netReceiveConfiguration2, hashMap,
                                             connection, restoreTransfer, restoreInitiator, timeout, restoreTimeout, isNeedRestore, queueRestore);

            _handler = new WriterHandler(_writerSystem);
        }
Exemplo n.º 6
0
        public DistributorApi(DistributorNetConfiguration netConfiguration,
                              DistributorConfiguration distributorConfiguration, CommonConfiguration commonConfiguration,
                              TimeoutConfiguration timeoutConfiguration)
        {
            Contract.Requires(netConfiguration != null);
            Contract.Requires(distributorConfiguration != null);
            Contract.Requires(commonConfiguration != null);
            Contract.Requires(timeoutConfiguration != null);

            var dbServer    = new ServerId(netConfiguration.Host, netConfiguration.PortForStorage);
            var proxyServer = new ServerId(netConfiguration.Host, netConfiguration.PortForProxy);

            var distrHash  = new DistributorHashConfiguration(distributorConfiguration.CountReplics);
            var queue      = new QueueConfiguration(commonConfiguration.CountThreads, commonConfiguration.QueueSize);
            var connection = new ConnectionConfiguration(netConfiguration.WcfServiceName,
                                                         netConfiguration.CountConnectionsToSingleServer);
            var distrCache = new DistributorCacheConfiguration(distributorConfiguration.DataAliveTime,
                                                               distributorConfiguration.DataAliveAfterUpdate);
            var dbNetReceive = new NetReceiverConfiguration(netConfiguration.PortForStorage,
                                                            netConfiguration.Host, netConfiguration.WcfServiceName);
            var proxyNetReceive = new NetReceiverConfiguration(netConfiguration.PortForProxy,
                                                               netConfiguration.Host, netConfiguration.WcfServiceName);
            var transaction = new TransactionConfiguration(commonConfiguration.CountThreads);
            var hashMap     = new HashMapConfiguration(distributorConfiguration.FileWithHashName,
                                                       HashMapCreationMode.ReadFromFile, 1,
                                                       distributorConfiguration.CountReplics, HashFileType.Distributor);
            var asyncPing  = new AsyncTasksConfiguration(distributorConfiguration.PingPeriod);
            var asyncCheck = new AsyncTasksConfiguration(distributorConfiguration.CheckPeriod);
            var timeou     = new ConnectionTimeoutConfiguration(timeoutConfiguration.OpenTimeout,
                                                                timeoutConfiguration.SendTimeout);

            _distributorSystem = new DistributorSystem(dbServer, proxyServer, distrHash, queue, connection, distrCache,
                                                       dbNetReceive, proxyNetReceive, transaction, hashMap, asyncPing, asyncCheck, timeou);

            _handler = new DistributorHandler(_distributorSystem);
        }
Exemplo n.º 7
0
        protected CollectorApi(CollectorConfiguration collectorConfiguration, CollectorNetConfiguration netConfiguration,
                               CommonConfiguration commonConfiguration, TimeoutConfiguration timeoutConfiguration)
        {
            Contract.Requires(collectorConfiguration != null);
            Contract.Requires(netConfiguration != null);
            Contract.Requires(commonConfiguration != null);
            Contract.Requires(timeoutConfiguration != null);

            _isStarted = false;
            _isBuild   = false;
            _isDispose = false;

            _collectorSystem = new CollectorSystem(
                new DistributorHashConfiguration(collectorConfiguration.CountReplics),
                new HashMapConfiguration(collectorConfiguration.FileWithHashName, HashMapCreationMode.ReadFromFile, 1,
                                         collectorConfiguration.CountReplics, HashFileType.Collector),
                new ConnectionConfiguration(netConfiguration.WcfServiceName,
                                            netConfiguration.CountConnectionsToSingleServer),
                new ConnectionTimeoutConfiguration(timeoutConfiguration.OpenTimeout, timeoutConfiguration.SendTimeout),
                new QueueConfiguration(commonConfiguration.CountThreads, commonConfiguration.QueueSize),
                collectorConfiguration.PageSize, collectorConfiguration.UseHashFile);

            _apis = new Dictionary <string, CollectorHandlerTuple>();
        }
Exemplo n.º 8
0
 private IBotPolicy <T> CreatePolicyWithTimeout <T>(TimeoutConfiguration timeoutConfig) =>
 new BotPolicy <T>(config => config
                   .Configure(botconfig => botconfig
                              .Timeout(timeoutConfig)));
Exemplo n.º 9
0
        //private IStorage<int, DataWithBuffer> _data;

        public TestGate(NetConfiguration netConfiguration, ProxyConfiguration proxyConfiguration,
                        CommonConfiguration commonConfiguration, TimeoutConfiguration timeoutConfiguration)
            : base(netConfiguration, proxyConfiguration, commonConfiguration, timeoutConfiguration)
        {
        }
Exemplo n.º 10
0
        /// <summary>
        /// Adds a timeout bot to a <see cref="IBotPolicy"/> with the given configuration.
        /// </summary>
        /// <typeparam name="TResult">The result type of the passed operation.</typeparam>
        /// <param name="builder">The policy builder.</param>
        /// <param name="configuration">The configuraton.</param>
        /// <returns>The policy builder.</returns>
        /// <example>
        /// <code>
        /// builder.Timeout(
        ///     new TimeoutConfiguration()
        ///         .After(TimeSpan.FromSeconds(15))
        ///         .OnTimeout(context => timeoutAction()));
        /// </code>
        /// </example>
        public static IBotPolicyBuilder <TResult> Timeout <TResult>(this IBotPolicyBuilder <TResult> builder, TimeoutConfiguration configuration)
        {
            Shield.EnsureNotNull(configuration, nameof(configuration));

            return(builder.AddBot((innerBot, config) => new TimeoutBot <TResult>(innerBot, config), configuration));
        }