public static IOperation MeasureWith(IOperation operation, IMeasurer measurer) { return(new MeasureExecutionTimeOperationDecorator(operation) { Measurer = measurer }); }
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); }
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); }
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(); } }
public SizeHandler(string name, IMeasurer measurer) { Name = name; Measurer = measurer; }
public PluginExecuteEventArgs(IMeasurer im, DateTimeOffset executedTime) : base() { this.MeasurerPlugin = im; this.SignalTime = executedTime; }
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; }