示例#1
0
        public void AnnounceServer_WhenServerExists_UpdatesServer()
        {
            // GIVEN
            const string serverId = "server-001";

            _elasticClient.Index(new Model.Server {
                Id = serverId
            }, descr => descr.Refresh(Refresh.True)).ThrowIfInvalid();

            // WHEN
            var serverContext = new Server.ServerContext
            {
                Queues      = new[] { "queue 1", "queue 2" },
                WorkerCount = 32
            };

            _elasticConnection.AnnounceServer(serverId, serverContext);

            // THEN
            var serverResponse = _elasticClient.Get <Model.Server>(serverId).ThrowIfInvalid();

            serverResponse.Found.Should().BeTrue();

            var server = serverResponse.Source;

            server.Queues.ShouldBeEquivalentTo(serverContext.Queues);
            server.WorkerCount.Should().Be(serverContext.WorkerCount);
        }
        public void AnnounceServer_Throws()
        {
            // GIVEN
            const string serverId      = "server-001";
            var          serverContext = new Server.ServerContext
            {
                Queues      = new[] { "queue 1", "queue 2" },
                WorkerCount = 32
            };

            // WHEN THEN
            Assert.Throws <HangfireElasticSearchException>(() => _elasticConnection.AnnounceServer(serverId, serverContext));
        }
 public void RemoveServer()
 {
     UseConnections((redis, connection) =>
     {
         var server    = new Server.ServerContext();
         server.Queues = new string[1] {
             "queue1"
         };
         server.WorkerCount = 5;
         connection.AnnounceServer("1", server);
         connection.RemoveServer("1");
         Assert.Equal(0, redis.SetLength(Prefix + "servers"));
         Assert.Equal(0, redis.ListLength(Prefix + "server:1:queues"));
         Assert.Equal(RedisValue.Null, redis.HashGet(Prefix + "server:1", "WorkerCount"));
     });
 }
        public void AnnounceServer()
        {
            UseConnections((redis, connection) =>
            {
                var server    = new Server.ServerContext();
                server.Queues = new string[1] {
                    "queue1"
                };
                server.WorkerCount = 5;
                connection.AnnounceServer("1", server);

                Assert.Equal(1, redis.SetLength(Prefix + "servers"));
                Assert.Equal(1, redis.ListLength(Prefix + "server:1:queues"));
                Assert.Equal("5", redis.HashGet(Prefix + "server:1", "WorkerCount"));
                var pong = JobHelper.DeserializeDateTime(redis.HashGet(Prefix + "server:1", "StartedAt"));
                Assert.Equal(0, (int)(pong - DateTime.UtcNow).TotalSeconds);
            });
        }
 public void RemoveServer()
 {
     UseConnections((redis, connection) =>
     {
         var server = new Server.ServerContext();
         server.Queues = new string[1] { "queue1" };
         server.WorkerCount = 5;
         connection.AnnounceServer("1", server);
         connection.RemoveServer("1");
         Assert.Equal(0, redis.SetLength(Prefix + "servers"));
         Assert.Equal(0, redis.ListLength(Prefix + "server:1:queues"));
         Assert.Equal(RedisValue.Null, redis.HashGet(Prefix + "server:1", "WorkerCount"));
     });
 }
        public void AnnounceServer()
        {
            UseConnections((redis, connection) =>
            {
                var server = new Server.ServerContext();
                server.Queues = new string[1] {"queue1"};
                server.WorkerCount = 5;
                connection.AnnounceServer("1", server);

                Assert.Equal(1, redis.SetLength(Prefix + "servers"));
                Assert.Equal(1, redis.ListLength(Prefix + "server:1:queues"));
                Assert.Equal("5", redis.HashGet(Prefix + "server:1", "WorkerCount"));
                var pong = JobHelper.DeserializeDateTime(redis.HashGet(Prefix + "server:1", "StartedAt"));
                Assert.Equal(0, (int)(pong - DateTime.UtcNow).TotalSeconds);
            });
        }