예제 #1
0
        public async Task <bool> Load()
        {
            var status = await _client.GetStatusAsync();

            if (status != null && status.Contains("server is running"))
            {
                return(true);
            }

            _mlSharpPython = new MlSharpPython(_pythonExecName);
            if (await Task.Run(() => _mlSharpPython.Run(_fileNameParameter)))
            {
                var      startTime   = DateTime.Now;
                TimeSpan waitingTime = new TimeSpan(0, 0, 0, 2);
                while (DateTime.Now - startTime < waitingTime)
                {
                    Thread.Sleep(100);
                    status = await _client.GetStatusAsync();

                    if (status != null && status.Contains("server is running"))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
예제 #2
0
        public async Task <bool> Run()
        {
            Console.WriteLine("Checking reina-net service...");
            var status = await _client.GetStatusAsync();

            if (status != null && status.Contains("server is running"))
            {
                Console.WriteLine("Reina-net is ready!");
                return(true);
            }
            Console.WriteLine("Retina-net is not running: trying to run...");

            await Load();


            if (await _docker.Run(_id))
            {
                Console.WriteLine("Container runs. Loading retina-net model...");
                var      startTime   = DateTime.Now;
                TimeSpan waitingTime = new TimeSpan(0, 0, 10, 0);
                while (DateTime.Now - startTime < waitingTime)
                {
                    // Provide a 100ms startup delay
                    await Task.Delay(TimeSpan.FromMilliseconds(100));

                    status = await _client.GetStatusAsync();

                    if (status != null && status.Contains("server is running"))
                    {
                        Console.WriteLine("Reina-net is ready!");
                        return(true);
                    }
                }
            }
            return(false);
        }
예제 #3
0
        public async Task <bool> Run()
        {
            Console.WriteLine("Checking retina-net service...");
            var status = await _client.GetStatusAsync();

            if (status != null && status.Contains("server is running", StringComparison.InvariantCultureIgnoreCase))
            {
                Console.WriteLine("Retina-net is ready!");
                return(true);
            }
            Console.WriteLine("Retina-net is not running: trying to run...");

            await Load();


            if (await _docker.Run(_id))
            {
                Console.WriteLine("Container runs. Loading retina-net model...");
                var startTime = DateTime.Now;
                //wait no more then 10 min.
                while ((DateTime.Now - startTime).TotalMinutes < 10)
                {
                    // Provide a 100ms startup delay
                    await Task.Delay(TimeSpan.FromMilliseconds(100));

                    status = await _client.GetStatusAsync();

                    if (status != null && status.Contains("server is running", StringComparison.InvariantCultureIgnoreCase))
                    {
                        Console.WriteLine("Retina-net is ready!");
                        return(true);
                    }
                }
            }
            return(false);
        }