示例#1
0
 public static IOperation MeasureWith(IOperation operation, IMeasurer measurer)
 {
     return(new MeasureExecutionTimeOperationDecorator(operation)
     {
         Measurer = measurer
     });
 }
示例#2
0
        void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            IMeasurer im = null;

            im = this.timers[(System.Timers.Timer)sender];

            PluginExecuteEventArgs pe = new PluginExecuteEventArgs(im, e.SignalTime);

            this.OnExecutePluginProcess(sender, pe);
        }
示例#3
0
        private void CreateTimer(MeasurerProcessPlugin mpp, IMeasurer im)
        {
            System.Timers.Timer timer;
            timer           = new System.Timers.Timer();
            timer.AutoReset = true;

            if (mpp.ExecuteInterval > this.settings.MinimumExecutionInterval)
            {
                timer.Interval = (double)mpp.ExecuteInterval.SecondsToMilliseconds();
            }
            else
            {
                timer.Interval = (double)this.settings.MinimumExecutionInterval.SecondsToMilliseconds();
            }
            timer.Elapsed += timer_Elapsed;

            this.timers.Add(timer, im);
        }
示例#4
0
        void MeasurerService_ExecutePluginProcess(object sender, PluginExecuteEventArgs e)
        {
            IMeasurer im = e.MeasurerPlugin;

            if (im != null)
            {
#if DEBUG
                log.Append(string.Format("Starting new Plugin {0} Process() task.", im.Name), EventLogEntryType.Information, true);
#endif
                // see: http://stackoverflow.com/questions/17298269/catching-exceptions-caused-in-different-threads
                var task = Task.Factory.StartNew(im.Process);
                task.ContinueWith(t => PluginProcess_UnhandledException(t.Exception, im.Name), TaskContinuationOptions.OnlyOnFaulted);
#if DEBUG
                log.Append(string.Format("Task run {0}.", im.Name), EventLogEntryType.Information, true);
#endif
            }
            else
            {
                log.Append(string.Format("Measurer plugin class is null, cannot perform Measurer process. Service will be stopped."), EventLogEntryType.Error, 100, true);
                this.ExitCode = 100;
                this.Stop();
            }
        }
示例#5
0
文件: measurers.cs 项目: kig/filezoo
 public SizeHandler(string name, IMeasurer measurer)
 {
     Name = name;
     Measurer = measurer;
 }
示例#6
0
 public PluginExecuteEventArgs(IMeasurer im, DateTimeOffset executedTime)
     : base()
 {
     this.MeasurerPlugin = im;
     this.SignalTime     = executedTime;
 }
示例#7
0
 public HeartbeatService(IMeasurer measurer, ILogger <HeartbeatService> logger)
 {
     _measurer = measurer;
     _logger   = logger;
     _period   = TimeSpan.FromSeconds(5);
 }
 /// <summary>
 /// .ctor
 /// </summary>
 public RequestWriterMiddleware(ILogger <RequestWriterMiddleware> logger, IMeasurer measurer)
 {
     _logger   = logger;
     _measurer = measurer;
 }