Пример #1
0
        static async Task RunAsync()
        {
            while (!cancellationTokenSource.Token.IsCancellationRequested)
            {
                try
                {
                    await Task.Delay(TimeSpan.FromMinutes(5), cancellationTokenSource.Token);
                }
                catch (TaskCanceledException)
                {
                }

                int downDevices, totalDevices;
                StateCollection <DeviceClientState> .GetRatio(DeviceClientState.Down, out downDevices, out totalDevices);

                Trace.TraceInformation($"{downDevices} of {totalDevices} devices down");

                if (downDevices > totalDevices * 0.5 && Environment.GetEnvironmentVariable("WEBSITE_HOSTNAME") != null)
                {
                    Trace.TraceError("Too many devices down. Force restart");
                    break;
                }
            }
        }