Ejemplo n.º 1
0
        // Run command and return output.
        // Project ID argument is always set.
        // Session ID argument available as a parameter.
        // Sets helper properties to last console output.
        public ConsoleOutput Run(string command, params object[] args)
        {
            using (var thottleToken = s_throttleTokenPool.Acquire())
            {
                var arguments = args.Select((arg) => arg.ToString()).ToList();
                arguments.Insert(0, command);
                arguments.AddRange(new[] { "--projectId", ProjectId });
                try
                {
                    Output = _dialogflow.Run(arguments.ToArray());
                }
                catch (Grpc.Core.RpcException e)
                    when(e.Status.StatusCode == Grpc.Core.StatusCode.ResourceExhausted)
                    {
                        // Throttle some more!
                        int randomDelay = new Random().Next(60, 120);

                        System.Threading.Thread.Sleep(TimeSpan.FromSeconds(randomDelay));
                        // And try once more.
                        Output = _dialogflow.Run(arguments.ToArray());
                    }
                Console.WriteLine(Output.Stdout);
                return(Output);
            }
        }
Ejemplo n.º 2
0
        // Run command and return output.
        // Project ID argument is always set.
        // Session ID argument available as a parameter.
        // Sets helper properties to last console output.
        public ConsoleOutput Run(string command, params object[] args)
        {
            using (var thottleToken = s_throttleTokenPool.Acquire())
            {
                var arguments = args.Select((arg) => arg.ToString()).ToList();
                arguments.Insert(0, command);
                arguments.AddRange(new[] { "--projectId", ProjectId });

                Output = _dialogflow.Run(arguments.ToArray());

                return(Output);
            }
        }