예제 #1
0
        public virtual async Task <TimeSpan> RunJobAsync(Job job, SilenceTime silence)
        {
            //estimate report generation time to correct interval between runnings
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            Log log = await ExecuteRuleAsync(job);

            job.WriteSelfTo(log);

            bool success = log.StatusEnum == StatusEnum.Success;

            if (!success || job.LogSuccess)
            {
                await LogRepository.SaveAsync(log);
            }

            if (!success)
            {
                await ExecuteTriggersAsync(job, silence, log);
            }

            stopwatch.Stop();

            return(stopwatch.Elapsed);
        }
예제 #2
0
		public virtual async Task<TimeSpan> RunJobAsync(Job job, SilenceTime silence)
		{
			//estimate report generation time to correct interval between runnings
			var stopwatch = new Stopwatch();
			stopwatch.Start();

			Log log = await ExecuteRuleAsync(job);

			job.WriteSelfTo(log);

			bool success = log.StatusEnum == StatusEnum.Success;

			if (!success || job.LogSuccess) await LogRepository.SaveAsync(log);

			if (!success) await ExecuteTriggersAsync(job, silence, log);

			stopwatch.Stop();

			return stopwatch.Elapsed;
		}