コード例 #1
0
    void ITimerService.Run()
    {
        RawRecord()
        .Right(record => {
            this.LastRecord = record;
        })
        .Left(err => System.Console.WriteLine(err.Message));


        this.Timer = new System.Threading.Timer(e => {
            RawRecord().Right(record => {
                var diff        = DiffToLast(record);
                this.LastRecord = record;

                this.db.Try(db => {
                    db.GetCollection <MongoPerformanceRecord>("mongoPerformance").InsertOne(diff);
                    return(true);
                });

                this.socketServicec.Broadcast(diff, "_mongoPerformance");
            }).Left(err => System.Console.WriteLine(err));

            MonitorApps();
        }, null, TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(60));
    }
コード例 #2
0
 MongoPerformanceRecord DiffToLast(MongoPerformanceRecord record)
 {
     return(new MongoPerformanceRecord {
         Inserted = record.Inserted - LastRecord.Inserted,
         Updated = record.Updated - LastRecord.Updated,
         Deleted = record.Deleted - LastRecord.Deleted,
         Returned = record.Returned - LastRecord.Returned,
         MemUsage = record.MemUsage
     });
 }