Ejemplo n.º 1
0
        public void AddWaitingWorker_KnownWorker_ShouldNotAdd()
        {
            var service = new Service("service");
            var worker = new Worker("W001", new NetMQFrame("W001"), service);

            service.AddWaitingWorker(worker);
            service.AddWaitingWorker(worker);

            Assert.That(service.WaitingWorkers.Count(), Is.EqualTo(1));
            Assert.That(service.DoWorkersExist(), Is.True);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     adds the worker to the service and the known worker list
        ///     if not already known
        ///     it dispatches pending requests for this service as well
        /// </summary>
        private void AddWorker(Worker worker, Service service)
        {
            worker.Expiry = DateTime.UtcNow + m_heartbeatExpiry;

            if (!m_knownWorkers.Contains(worker))
            {
                m_knownWorkers.Add(worker);

                DebugLog($"added {worker.Id} to known worker.");
            }

            service.AddWaitingWorker(worker);

            DebugLog($"added {worker.Id} to waiting worker in service {service.Name}.");

            // get pending messages out
            ServiceDispatch(service, null);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     adds the worker to the service and the known worker list
        ///     if not already known
        ///     it dispatches pending requests for this service as well
        /// </summary>
        private void AddWorker(Worker worker, Service service)
        {
            worker.Expiry = DateTime.UtcNow + m_heartbeatExpiry;

            if (!m_knownWorkers.Contains(worker))
            {
                m_knownWorkers.Add(worker);

                DebugLog(string.Format("[BROKER DEBUG] added {0} to known worker.", worker.Id));
            }

            service.AddWaitingWorker(worker);

            DebugLog(string.Format("[BROKER DEBUG] added {0} to waiting worker in service {1}.",
                                   worker.Id,
                                   service.Name));

            // get pending messages out
            ServiceDispatch(service, null);
        }
Ejemplo n.º 4
0
        public void DeleteWorker_KnownWorker_ShouldReturnAddToWaitingAndKnownWorkers()
        {
            Worker workerToDelete = null;
            var service = new Service("service");

            for (var i = 0; i < 10; i++)
            {
                var id = $"W0{i:N3}";
                var worker = new Worker(id, new NetMQFrame(id), service);

                if (i == 5)
                    workerToDelete = worker;

                service.AddWaitingWorker(worker);
            }

            Assert.That(service.WaitingWorkers.Count(), Is.EqualTo(10));
            Assert.That(service.DoWorkersExist(), Is.True);

            service.DeleteWorker(workerToDelete);

            Assert.That(service.WaitingWorkers.Count(), Is.EqualTo(9));
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     adds the worker to the service and the known worker list
        ///     if not already known
        ///     it dispatches pending requests for this service as well
        /// </summary>
        private void AddWorker (Worker worker, Service service)
        {
            worker.Expiry = DateTime.UtcNow + m_heartbeatExpiry;

            if (!m_knownWorkers.Contains (worker))
            {
                m_knownWorkers.Add (worker);

                DebugLog (string.Format ("added {0} to known worker.", worker.Id));
            }

            service.AddWaitingWorker (worker);

            DebugLog (string.Format ("added {0} to waiting worker in service {1}.",
                                     worker.Id,
                                     service.Name));

            // get pending messages out
            ServiceDispatch (service, null);
        }
Ejemplo n.º 6
0
        public void GetNextWorker_SomeWaitingWorker_ShouldReturnOldestWorkerFirst()
        {
            Worker oldestWorker = null;
            var service = new Service("service");

            for (var i = 0; i < 10; i++)
            {
                var id = $"W0{i:N3}";
                var worker = new Worker(id, new NetMQFrame(id), service);

                if (i == 0)
                    oldestWorker = worker;

                service.AddWaitingWorker(worker);
            }

            Assert.That(service.GetNextWorker(), Is.EqualTo(oldestWorker));
            Assert.That(service.WaitingWorkers.Count(), Is.EqualTo(9));
        }
Ejemplo n.º 7
0
        public void DeleteWorker_AllWorker_ShouldEmptyWaitingAndKnown()
        {
            var service = new Service("service");

            for (var i = 0; i < 10; i++)
            {
                var id = $"W0{i:N3}";
                var worker = new Worker(id, new NetMQFrame(id), service);
                service.AddWaitingWorker(worker);
                service.DeleteWorker(worker);
            }

            Assert.That(service.WaitingWorkers, Is.Empty);
            Assert.That(service.DoWorkersExist(), Is.False);
        }
Ejemplo n.º 8
0
        public void GetNextWorker_GetAllWaitingWorkers_ShouldReturnEmptyWaitingAndLeaveKnownUnchanged()
        {
            var service = new Service("service");

            for (var i = 0; i < 10; i++)
            {
                var id = $"W0{i:N3}";
                var worker = new Worker(id, new NetMQFrame(id), service);
                service.AddWaitingWorker(worker);
                service.GetNextWorker();
            }

            Assert.That(service.WaitingWorkers, Is.Empty);
            Assert.That(service.DoWorkersExist(), Is.True);
        }