Ejemplo n.º 1
0
        private void Handle(SystemMessage.SystemStart message)
        {
            Log.Info("========= SystemStart: SingleVNodeController =========");
            _outputBus.Publish(message);

            _mainQueue.Publish(new SystemMessage.BecomeWorking());
        }
Ejemplo n.º 2
0
        private void SpeedTest(Func <IHandle <Message>, IPublisher> queueFactory, int producingThreads, int messageCnt)
        {
            var queue      = queueFactory(new NoopConsumer());
            var threads    = new Thread[producingThreads];
            int msgCnt     = messageCnt;
            var startEvent = new ManualResetEventSlim(false);
            var endEvent   = new CountdownEvent(producingThreads);
            var msg        = new SystemMessage.SystemStart();

            const int batchSize = 100;

            for (int i = 0; i < producingThreads; ++i)
            {
                threads[i] = new Thread(() =>
                {
                    startEvent.Wait();

                    while (true)
                    {
                        // get a batch to reduce the friction on the msgCnt
                        var prevValue = Interlocked.Add(ref msgCnt, -batchSize) + batchSize;

                        var toDispatch = Math.Min(prevValue, batchSize);
                        if (toDispatch <= 0)
                        {
                            break;
                        }

                        while (toDispatch > 0)
                        {
                            queue.Publish(msg);
                            toDispatch -= 1;
                        }
                    }

                    endEvent.Signal();
                })
                {
                    IsBackground = true, Name = "Producer #" + i
                };
                threads[i].Start();
            }

            Thread.Sleep(500);

            var sw = Stopwatch.StartNew();

            startEvent.Set();
            endEvent.Wait();
            sw.Stop();

            Console.WriteLine(
                "Queue: {0},\nProducers: {1},\nTotal messages: {2},\nTotal time: {3},\nTicks per 1000 items: {4}",
                queue.GetType().Name,
                producingThreads,
                messageCnt,
                sw.Elapsed,
                sw.Elapsed.Ticks / (messageCnt / 1000));
        }
Ejemplo n.º 3
0
 public void Handle(SystemMessage.SystemStart message)
 {
     foreach (var queue in _queues)
     {
         queue.Publish(new ProjectionMessage.CoreService.Start());
     }
     StartExistingProjections();
 }
Ejemplo n.º 4
0
 public void Handle(SystemMessage.SystemStart message)
 {
     try {
         _server.Start();
         Log.Info("Started gRpc server to run on host {0} port {1}", _serverPort.Host, _serverPort.Port);
     } catch (Exception e) {
         Log.ErrorException(e, "Error starting gRpc server on host {0} port {1}", _serverPort.Host, _serverPort.Port);
     }
 }
Ejemplo n.º 5
0
 public void Handle(SystemMessage.SystemStart message)
 {
     try
     {
         _serverListener.StartListening(OnConnectionAccepted);
     }
     catch (Exception e)
     {
         Application.Exit(ExitCode.Error, e.Message);
     }
 }
Ejemplo n.º 6
0
        private void SpeedTest(Func <IHandle <Message>, IPublisher> queueFactory, int producingThreads, int messageCnt)
        {
            var queue      = queueFactory(new NoopConsumer());
            var threads    = new Thread[producingThreads];
            int msgCnt     = messageCnt;
            var startEvent = new ManualResetEventSlim(false);
            var endEvent   = new CountdownEvent(producingThreads);
            var msg        = new SystemMessage.SystemStart();

            for (int i = 0; i < producingThreads; ++i)
            {
                threads[i] = new Thread(() =>
                {
                    startEvent.Wait();

                    while (Interlocked.Decrement(ref msgCnt) > 0)
                    {
                        queue.Publish(msg);
                    }

                    endEvent.Signal();
                })
                {
                    IsBackground = true, Name = "Producer #" + i
                };
                threads[i].Start();
            }

            Thread.Sleep(500);

            var sw = Stopwatch.StartNew();

            startEvent.Set();
            endEvent.Wait();
            sw.Stop();

            Console.WriteLine("Queue: {0},\nProducers: {1},\nTotal messages: {2},\nTotal time: {3},\nTicks per 1000 items: {4}",
                              queue.GetType().Name,
                              producingThreads,
                              messageCnt,
                              sw.Elapsed,
                              sw.Elapsed.Ticks / (messageCnt / 1000));
        }
Ejemplo n.º 7
0
 public void Handle(SystemMessage.SystemStart message)
 {
 }
Ejemplo n.º 8
0
 public void Handle(SystemMessage.SystemStart message)
 {
     _systemStarted = true;
 }
Ejemplo n.º 9
0
 private void Handle(SystemMessage.SystemStart message)
 {
     Log.Info("========== [{0}] SYSTEM START...", _nodeInfo.InternalHttp);
     _outputBus.Publish(message);
     _fsm.Handle(new SystemMessage.BecomeUnknown(Guid.NewGuid()));
 }
Ejemplo n.º 10
0
 private void Handle(SystemMessage.SystemStart message)
 {
     Log.Info("========== [{0}] SYSTEM START....", _httpEndPoint);
     _outputBus.Publish(message);
     _fsm.Handle(new SystemMessage.BecomePreMaster(Guid.NewGuid()));
 }
Ejemplo n.º 11
0
 public void Handle(SystemMessage.SystemStart message)
 {
     _thread.Start();
 }
Ejemplo n.º 12
0
 public void Handle(SystemMessage.SystemStart message)
 {
     _coreOutput.Publish(new ProjectionMessage.CoreService.Start());
     StartExistingProjections();
 }