Application Insight не отправляет данные без использования Thread.Sleep

У меня есть консольное приложение, которое запускается через планировщик веб-заданий через 15 минут. Но проблема в том, что телеметрия Application Insight не отправляет данные без использования Thread.Sleep в конце кода.

    private static void Main(string[] args)
    {
         Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = "APPINSIGHTS_INSTRUMENTATIONKEY";
        //do others stuff
        System.Threading.Thread.Sleep(10000);
   }

Здесь я использую 10 секунд для сна потока. Но иногда он пропускает некоторые данные последней порции. Но после 70 секунд все работает нормально.

Я хочу знать, каково минимальное время сна, когда будут отправлены все данные.

Или есть любой другой способ, который не требует Thread.Sleep.


person Rousonur Jaman    schedule 25.08.2017    source источник
comment
Выполняете ли вы какие-либо асинхронные или многопоточные вызовы внутри //делаете другие вещи? Если они работают в другом потоке, они будут завершены, когда закончится поток основной консоли.   -  person Jesse Carter    schedule 25.08.2017
comment
Нет асинхронного вызова   -  person Rousonur Jaman    schedule 25.08.2017
comment
Не видя немного больше задействованного кода, будет трудно комментировать   -  person Jesse Carter    schedule 25.08.2017
comment
@ Питер Бонс прав. Это должно быть сделано ответом и принято.   -  person James Davis - MSFT    schedule 26.08.2017


Ответы (1)


Что произойдет, если установить для параметра DeveloperMode значение true, как описано в здесь? ИИ не отправляет элементы телеметрии напрямую. Если он работает в режиме разработчика, возможно, вам следует вызвать Flush, как описано здесь. Кроме того, имейте в виду, что может пройти несколько минут, прежде чем предметы появятся на портале.

person Peter Bons    schedule 26.08.2017