2017-08-25 16 views
0

15分間隔でWebジョブスケジューラを実行するコンソールアプリケーションがあります。しかし問題は、Application Insight Telemetryがコードの最後にThread.Sleepを使用せずにデータを送信しないことです。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を必要としない方法もあります。

+0

//内部に非同期呼び出しまたはスレッド呼び出しをしていますか?それらが別のスレッドで実行されている場合、メインコンソールスレッドが終了したときに終了するつもりです –

+0

いいえ非同期呼び出しがありません –

+0

もう少し複雑なコードは表示されませんが、コメントするのは難しいでしょう –

答えて

1

DeveloperModeをアウトラインhereのようにtrueに設定するとどうなりますか? AIはテレメトリアイテムを直接送信しません。開発者モードで動作する場合は、hereのようにFlushを呼び出す必要があります。また、アイテムがポータルに表示されるまで数分かかる場合があります。