Пример #1
0
        public static void Main(string[] args)
        {
            ConsoleAppender consoleAppender = new ConsoleAppender();

            consoleAppender.Layout =
                new PatternLayout("[%thread] - %message%newline");
            log4net.Config.BasicConfigurator.Configure(consoleAppender);

            string serverURI = "http://127.0.0.1:8003";

            if (args.Length > 1)
            {
                serverURI = args[1];
            }
            int max1, max2;

            ThreadPool.GetMaxThreads(out max1, out max2);
            m_log.InfoFormat("[ASSET CLIENT]: Connecting to {0} max threads = {1} - {2}", serverURI, max1, max2);
            ThreadPool.GetMinThreads(out max1, out max2);
            m_log.InfoFormat("[ASSET CLIENT]: Connecting to {0} min threads = {1} - {2}", serverURI, max1, max2);

            if (!ThreadPool.SetMinThreads(1, 1))
            {
                m_log.WarnFormat("[ASSET CLIENT]: Failed to set min threads");
            }

            if (!ThreadPool.SetMaxThreads(10, 3))
            {
                m_log.WarnFormat("[ASSET CLIENT]: Failed to set max threads");
            }

            ThreadPool.GetMaxThreads(out max1, out max2);
            m_log.InfoFormat("[ASSET CLIENT]: Post set max threads = {1} - {2}", serverURI, max1, max2);
            ThreadPool.GetMinThreads(out max1, out max2);
            m_log.InfoFormat("[ASSET CLIENT]: Post set min threads = {1} - {2}", serverURI, max1, max2);

            AssetServicesConnector m_Connector = new AssetServicesConnector(serverURI);

            m_Connector.MaxAssetRequestConcurrency = 30;

            for (int i = 0; i < NREQS; i++)
            {
                UUID uuid = UUID.Random();
                m_Connector.Get(uuid.ToString(), null, ResponseReceived);
                m_log.InfoFormat("[ASSET CLIENT]: [{0}] requested asset {1}", i, uuid);
            }

            for (int i = 0; i < 500; i++)
            {
                var x = i;
                ThreadPool.QueueUserWorkItem(delegate
                {
                    Dummy(x);
                });
            }

            Thread.Sleep(30 * 1000);
            m_log.InfoFormat("[ASSET CLIENT]: Received responses {0}", m_NReceived);
        }
Пример #2
0
        public void Initialize(IConfigSource config, IRegistryCore registry)
        {
            IConfig handlerConfig = config.Configs["Handlers"];

            if (handlerConfig.GetString("AssetHandler", "") != Name)
            {
                return;
            }

            m_localService = new AssetService();
            m_localService.Configure(config, registry);
            m_remoteService = new AssetServicesConnector();
            m_remoteService.Initialize(config, registry);
            registry.RegisterModuleInterface <IAssetService>(this);
        }
Пример #3
0
        public void Initialize(IConfigSource config, IRegistryCore registry)
        {
            IConfig handlerConfig = config.Configs["Handlers"];

            if (handlerConfig.GetString("AssetHandler", "") != Name)
            {
                return;
            }

            string localAssetHandler      = handlerConfig.GetString("LocalAssetHandler", "AssetService");
            List <IAssetService> services = AuroraModuleLoader.PickupModules <IAssetService>();

#if (!ISWIN)
            foreach (IAssetService s in services)
            {
                if (s.GetType().Name == localAssetHandler)
                {
                    m_localService = s;
                }
            }
#else
            foreach (IAssetService s in services.Where(s => s.GetType().Name == localAssetHandler))
            {
                m_localService = s;
            }
#endif

            if (m_localService == null)
            {
                m_localService = new AssetService();
            }
            m_localService.Configure(config, registry);
            m_remoteService = new AssetServicesConnector();
            m_remoteService.Initialize(config, registry);
            registry.RegisterModuleInterface <IAssetService>(this);
            m_registry = registry;
        }