예제 #1
0
        private void RegisterMessageQueue()
        {
            ITinyThreadPool threadPool = TinyThreadPool.Create(x =>
            {
                x.MaxThreads             = 3;
                x.MultiThreadingCapacity = MultiThreadingCapacity.PerProcessor;
            });

            IMessageQueue inputQueue = QueueConfiguration.Create()
                                       .Configure(config =>
            {
                config.DataSerializer = KernelInstance.Get <IDataSerializer>();
                config.QueueUrl       = _settings.InputTweetQueueUrl;
            }).CreateLocalQueue();

            IMessageQueue outputQueue = QueueConfiguration.Create()
                                        .Configure(config =>
            {
                config.DataSerializer = KernelInstance.Get <IDataSerializer>();
                config.QueueUrl       = _settings.OutputTweetQueueUrl;
            }).CreateLocalQueue();

            Bind <StopWordsProcessor>().ToConstructor(x => new StopWordsProcessor(inputQueue, outputQueue, threadPool, x.Inject <IDataSerializer>()))
            .InSingletonScope();
        }
예제 #2
0
 public StopWordsProcessor(
     IMessageQueue inputQueue,
     IMessageQueue outputQueue,
     ITinyThreadPool threadPool,
     IDataSerializer dataSerializer)
 {
     _inputQueue  = inputQueue;
     _outputQueue = outputQueue;
     _threadPool  = threadPool;
 }
예제 #3
0
        public void Default_NewThreadPool_Success()
        {
            ITinyThreadPool threadPool = TinyThreadPool.Default;

            Assert.Equal(MultiThreadingCapacity.PerProcessor, threadPool.MultiThreadingCapacity);
            Assert.Equal(Environment.ProcessorCount * 1, threadPool.MinThreads);
            Assert.Equal(Environment.ProcessorCount * 5, threadPool.MaxThreads);
            Assert.Equal("TinyThreadPool", threadPool.Name);
            threadPool.Dispose();
            threadPool.Dispose();
        }
예제 #4
0
        private static void Main()
        {
            // create default TinyThreadPool instance or thru method TinyThreadPool.Create
            // _threadPool = TinyThreadPool.Default;

            _threadPool = TinyThreadPool.Create(x =>
            {
                x.Name                   = "My ThreadPool";
                x.MinThreads             = 2;
                x.MaxThreads             = 10;
                x.MultiThreadingCapacity = MultiThreadingCapacity.Global;
            });

            AddTasks();
            Console.ReadKey();
        }
예제 #5
0
        private static void Main()
        {
            // create default TinyThreadPool instance or thru method TinyThreadPool.Create
            // _threadPool = TinyThreadPool.Default;

            _threadPool = TinyThreadPool.Create(x =>
            {
                x.Name = "My ThreadPool";
                x.MinThreads = 2;
                x.MaxThreads = 10;
                x.MultiThreadingCapacity = MultiThreadingCapacity.Global;
            });

            AddTasks();
            Console.ReadKey();
        }
예제 #6
0
        public void Create_NewThreadPool_Success()
        {
            const string Name       = "MyThreadPool";
            const int    MinThreads = 4;
            const int    MaxThreads = 6;
            const MultiThreadingCapacity MultiThreadingCapacity = MultiThreadingCapacity.Global;

            ITinyThreadPool threadPool = TinyThreadPool.Create(x =>
            {
                x.Name                   = Name;
                x.MinThreads             = MinThreads;
                x.MaxThreads             = MaxThreads;
                x.MultiThreadingCapacity = MultiThreadingCapacity;
            });

            Assert.Equal(MultiThreadingCapacity, threadPool.MultiThreadingCapacity);
            Assert.Equal(MinThreads, threadPool.MinThreads);
            Assert.Equal(MaxThreads, threadPool.MaxThreads);
            Assert.Equal(Name, threadPool.Name);
            Console.WriteLine(threadPool.ToString());
        }
예제 #7
0
 private static void Main()
 {
     _threadPool = TinyThreadPool.Default;
     AddTasks();
     Console.ReadKey();
 }