Пример #1
0
        public void TestThatQueueTimesOutCorrectly()
        {
            const int startPosition = 5;
            var       client        = new WebQMockClient(startPosition);
            var       queue         = new WebQueue(client, "test", TimeSpan.FromMilliseconds(10));

            queue.WaitInQueue(TimeSpan.FromMilliseconds(1));
        }
Пример #2
0
        public void TestThatTimeOutAlertsGetsCalled()
        {
            const int startPosition = 5;
            var       client        = new WebQMockClient(startPosition);
            var       queue         = new WebQueue(client, "test", TimeSpan.FromMilliseconds(10));

            queue.WebQueueTimeoutUpdate += (sender, args) => Assert.That(args.Message, Is.Not.Null.Or.Empty);
            queue.WaitInQueue(TimeSpan.FromMinutes(1));
        }
Пример #3
0
        public void TestThatQueueReturnsImmidiatlyWhenAddedToEmptyQueue()
        {
            const int startPosition = 0;
            var       client        = new WebQMockClient(startPosition);
            var       queue         = new WebQueue(client, "test", TimeSpan.FromMilliseconds(10));

            queue.WebQueuePositionUpdate += (sender, args) => Assert.That(args.Item.Position, Is.EqualTo(0));
            queue.WaitInQueue(TimeSpan.FromMilliseconds(1));
        }
Пример #4
0
        public void TestThatQueueIsCorrectlyProcessed()
        {
            const int startPosition   = 5;
            var       currentPosition = startPosition;
            var       client          = new WebQMockClient(startPosition);
            var       queue           = new WebQueue(client, "test", TimeSpan.FromMilliseconds(10));

            queue.WebQueuePositionUpdate += (sender, args) => Assert.That(currentPosition--, Is.EqualTo(args.Item.Position));
            queue.WaitInQueue(TimeSpan.FromMinutes(1));
        }
Пример #5
0
        public void TestThatQueueTimesOutCorrectly()
        {
            const int startPosition = 5;
            var       client        = new WebQMockClient(startPosition);
            var       queue         = new WebQueue(client, "test", TimeSpan.FromMilliseconds(10));

            Assert.Throws <TimeoutException>(() =>
            {
                queue.WaitInQueue(TimeSpan.FromMilliseconds(1));
            });
        }
Пример #6
0
        private static WebQueue WaitInQueue(ConDepSettings conDepSettings)
        {
            var webQ = new WebQueue(conDepSettings.Options.WebQAddress, conDepSettings.Options.Environment);

            webQ.WebQueuePositionUpdate += (sender, eventArgs) => Logger.Info(eventArgs.Message);
            webQ.WebQueueTimeoutUpdate  += (sender, eventArgs) => Logger.Info(eventArgs.Message);

            return(Logger.WithLogSection("Waiting in Deployment Queue", () =>
            {
                webQ.WaitInQueue(TimeSpan.FromMinutes(30));
                return webQ;
            }));
        }
Пример #7
0
        public void Execute(CmdHelpWriter helpWriter)
        {
            var failed         = false;
            var conDepSettings = new ConDepSettings();

            try
            {
                conDepSettings.Options = GetOptions(_parser, _validator);
                conDepSettings.Config  = ConfigHandler.GetEnvConfig(conDepSettings);

                helpWriter.PrintCopyrightMessage();
                if (QueuingRequested(conDepSettings))
                {
                    _webQ = WaitInQueue(conDepSettings);
                }

                var status = new ConDepStatus();
                _tokenSource = new CancellationTokenSource();
                var token = _tokenSource.Token;

                var result = ConDepConfigurationExecutor.ExecuteFromAssembly(conDepSettings, token);

                status.EndTime = DateTime.Now;

                if (result.Cancelled || result.Success)
                {
                    status.PrintSummary();
                }
                else
                {
                    status.PrintSummary();
                    failed = true;
                }
            }
            finally
            {
                if (_webQ != null)
                {
                    Logger.Info("Leaving WebQ");
                    _webQ.LeaveQueue();
                }
                if (failed)
                {
                    Environment.Exit(1);
                }
            }
        }
Пример #8
0
        static void Main(string[] args)
        {
            var      exitCode = 0;
            WebQueue webQ     = null;

            try
            {
                new LogConfigLoader().Load();
                Logger.TraceLevel = TraceLevel.Info;

                var optionHandler = new CommandLineOptionHandler(args);
                if (optionHandler.Params.InstallWebQ)
                {
                    throw new NotImplementedException();
                }
                else
                {
                    PrintCopyrightMessage();
                    Logger.LogSectionStart("ConDep");
                    if (!string.IsNullOrWhiteSpace(optionHandler.Params.WebQAddress))
                    {
                        webQ = new WebQueue(optionHandler.Params.WebQAddress, optionHandler.Params.Environment);
                        webQ.WebQueuePositionUpdate += (sender, eventArgs) => Logger.Info(eventArgs.Message);
                        webQ.WebQueueTimeoutUpdate  += (sender, eventArgs) => Logger.Info(eventArgs.Message);
                        Logger.LogSectionStart("Waiting in Deployment Queue");
                        try
                        {
                            webQ.WaitInQueue(TimeSpan.FromMinutes(30));
                        }
                        finally
                        {
                            Logger.LogSectionEnd("Waiting in Deployment Queue");
                        }
                    }

                    var configAssemblyLoader = new ConDepAssemblyHandler(optionHandler.Params.AssemblyName);
                    var assembly             = configAssemblyLoader.GetAssembly();

                    var conDepOptions = new ConDepOptions(optionHandler.Params.DeployAllApps,
                                                          optionHandler.Params.Application,
                                                          optionHandler.Params.DeployOnly,
                                                          optionHandler.Params.WebDeployExist,
                                                          optionHandler.Params.StopAfterMarkedServer,
                                                          optionHandler.Params.ContinueAfterMarkedServer,
                                                          assembly);
                    var envSettings = ConfigHandler.GetEnvConfig(optionHandler.Params.Environment, optionHandler.Params.BypassLB, assembly);

                    var status = new WebDeploymentStatus();
                    ConDepConfigurationExecutor.ExecuteFromAssembly(assembly, envSettings, conDepOptions, status);

                    if (status.HasErrors)
                    {
                        exitCode = 1;
                    }
                    else
                    {
                        status.EndTime = DateTime.Now;
                        status.PrintSummary();
                    }
                }
            }
            catch (Exception ex)
            {
                exitCode = 1;
                Logger.Error("ConDep reported a fatal error:");
                Logger.Error("Message: " + ex.Message);
                Logger.Verbose("Stack trace:\n" + ex.StackTrace);
            }
            finally
            {
                if (webQ != null)
                {
                    webQ.LeaveQueue();
                }

                Logger.LogSectionEnd("ConDep");
                Environment.Exit(exitCode);
            }
        }
Пример #9
0
        static void Main(string[] args)
        {
            using (WebQueue wq = new WebQueue("rpc_test"))
            {
                ////DIRECT=TCP:157.34.104.22\MyQueue
                //ConfigurationManager.ConnectionStrings["queues.data"].ConnectionString,
                //ConfigurationManager.ConnectionStrings["queues.ack"].ConnectionString,
                //ConfigurationManager.ConnectionStrings["queues.return"].ConnectionString);

                Random rnd = new Random();

                Stopwatch timer = new Stopwatch();
                while (true)
                {
                    //byte[] buffer = new byte[1024]; //new byte[4 * 1024 * 1024 - 5120];
                    //rnd.NextBytes(buffer);

                    RequestMessage request = new RequestMessage()
                    {
                        input_json = Guid.NewGuid().ToString()
                                     //Convert.ToBase64String(buffer)
                    };



                    try
                    {
                        Console.Write("* Call Remote ({0})...", request.input_json);
                        ResponseMessage response = wq.CallAsync(null, request).Result;
                        Console.WriteLine(", Receive Response: {0}", response.result_json);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(", Exception: {0}", ex);
                    }

                    //string id = wq.SendMessage(request, TimeSpan.FromMinutes(60));
                    //Console.WriteLine("send: {0}... ", id); //request.input_json));


                    //TimeSpan wait_timeout = TimeSpan.FromSeconds(60);


                    //Console.Write("WAIT RETURN: ");
                    //int is_return = 0;
                    //timer.Restart();
                    //while(is_return != 2 && timer.Elapsed < wait_timeout)
                    //{
                    //    is_return = wq.IsReturned(id);
                    //    Task.Delay(100).Wait();
                    //    Console.Write(is_return);
                    //}

                    //if (is_return == 2)
                    //{
                    //    ResponseMessage response = wq.ReceiveResponse(id, TimeSpan.FromMinutes(30));
                    //    Console.WriteLine(" > RETURNED");
                    //    Console.WriteLine(string.Format("receive: {0}, execute time: {1} msec.", id, timer.ElapsedMilliseconds));
                    //}
                    //else
                    //{
                    //    Console.WriteLine("TIMEOUT");
                    //}
                }
            }
        }