Inheritance: System.MarshalByRefObject, IExecutor
Beispiel #1
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("usage: Executor CONFIG_FILENAME");
                System.Environment.Exit(2);
            }

            try
            {
                SessionSettings settings = new SessionSettings(args[0]);
                Application executorApp = new Executor();
                MessageStoreFactory storeFactory = new FileStoreFactory(settings);
                LogFactory logFactory = new ScreenLogFactory(settings);
                ThreadedSocketAcceptor acceptor = new ThreadedSocketAcceptor(executorApp, storeFactory, settings, logFactory);

                acceptor.Start();
                Console.WriteLine("press <enter> to quit");
                Console.Read();
                acceptor.Stop();
            }
            catch (System.Exception e)
            {
                Console.WriteLine("FATAL ERROR: " + e.Message);
                Console.WriteLine(e.ToString());
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("=============");
            Console.WriteLine("This is only an example program, meant to be used with the TradeClient example.");
            Console.WriteLine("=============");

            if (args.Length != 1)
            {
                Console.WriteLine("usage: Executor CONFIG_FILENAME");
                System.Environment.Exit(2);
            }

            try
            {
                SessionSettings settings = new SessionSettings(args[0]);
                IApplication executorApp = new Executor();
                IMessageStoreFactory storeFactory = new FileStoreFactory(settings);
                ILogFactory logFactory = new FileLogFactory(settings);
                ThreadedSocketAcceptor acceptor = new ThreadedSocketAcceptor(executorApp, storeFactory, settings, logFactory);

                acceptor.Start();
                Console.WriteLine("press <enter> to quit");
                Console.Read();
                acceptor.Stop();
            }
            catch (System.Exception e)
            {
                Console.WriteLine("==FATAL ERROR==");
                Console.WriteLine(e.ToString());
            }
        }
        private void Renderpage(Executor executor, CancellationToken cancellationToken)
        {
            Console.SetCursorPosition(0, 0);
            int workerIndex = 0;

            foreach (var worker in executor.executeWorkers)
            {
                string currentMessage = "";
                string status         = "";
                string lang           = "";

                switch (worker.Status)
                {
                case ExecuteWorkerStatus.Wait:
                    currentMessage = "";
                    status         = "WAIT";
                    break;

                case ExecuteWorkerStatus.Build:
                    var solutionId = worker.Current.Id;
                    currentMessage = solutionId == null ? "null" :
                                     $"{solutionId} {worker.builder.CurrentBuildTime:hh\\:mm\\:ss}";
                    status = "BUILD";
                    lang   = worker.Current.Language;
                    break;

                case ExecuteWorkerStatus.Checking:
                    var runner  = worker.runner;
                    var current = runner.Current;

                    string percentPart;
                    if (runner.CurrentTestDataCount == 0)
                    {
                        percentPart = "[nodat]";
                    }
                    else
                    {
                        var twentyPartLength        = runner.CurrentTestDataCount / 5d;
                        var twentyPercentPartsCount = (int)(runner.CurrentTestDataCheckedCount / twentyPartLength);
                        percentPart = twentyPercentFillings[twentyPercentPartsCount];
                    }

                    currentMessage = current == null ? "null" :
                                     $"{current} ({runner.CurrentTestDataCheckedCount,4}/{runner.CurrentTestDataCount,4}) {percentPart} {runner.CurrentBuildTime:hh\\:mm\\:ss}";
                    status = "CHECK";
                    lang   = worker.Current.Language;
                    break;

                default:
                    currentMessage = "";
                    status         = "ERROR";
                    lang           = "";
                    break;
                }
                Console.WriteLine($"{workerIndex,6}: {status,-5} | {lang,-6} | {currentMessage,-65}");
                workerIndex++;
            }
            string inQueueOnServerMessage;
            var    inQueueOnServerObject = statistic?.FirstOrDefault(o => o.SolutionStatus == "InQueue");

            if (inQueueOnServerObject == null)
            {
                inQueueOnServerMessage = "no data";
            }
            else
            {
                inQueueOnServerMessage = $"{inQueueOnServerObject.Count,7}";
            }
            Console.WriteLine($"In queue on server: {inQueueOnServerMessage}");

            Console.WriteLine("LOGS");

            foreach (var logMessage in ConsoleStatusReporterLoggerProvider.messages.OrderBy(m => m.Item1).ToArray())
            {
                Console.WriteLine($"{logMessage.Item1:hh:mm:ss} {logMessage.Item2,-150}");
            }
        }