Пример #1
0
        public void Execute(IJobExecutionContext context)
        {
            var raw     = context.JobDetail;
            var trigger = context.Trigger;

            _log.Info($"[JobId={raw.Key}] [ScheduleId={trigger.Key}] [MessageText=Started executing job ({raw.Description}) on schedule ({trigger.Description}).]");
            _timer.Start();

            try
            {
                var job = _converter.For(raw);

                AddHeaders(job);

                SetTimeout(job);

                switch (job.HttpVerb)
                {
                case HttpVerb.Post:
                    Post(job);
                    break;

                case HttpVerb.Put:
                    Put(job);
                    break;

                case HttpVerb.Delete:
                    Delete(job);
                    break;

                default:
                    throw new HttpVerbNotSupported(job);
                }
            }
            catch (Exception e)
            {
                var failure = new JobFailedDuringExecution(e, raw, trigger);
                _log.Error(failure);
                throw failure;
            }

            _log.Info($"[JobId={raw.Key}] [ScheduleId={trigger.Key}] [TimeTaken={_timer.Elapsed}] [MessageText=Finished executing job ({raw.Description}) on schedule ({trigger.Description}).]");
        }
Пример #2
0
 private Job Convert(IJobDetail job)
 {
     try
     {
         return(_converter.For(job));
     }
     catch (Exception e)
     {
         var message = $"Failed to convert job {job.Key}.";
         if (_log.IsWarnEnabled)
         {
             _log.Warn(message, e);
         }
         else
         {
             _log.Debug(message, e);
         }
         return(null);
     }
 }
 public TestContext Act()
 {
     _result = _sut.For(_job);
     return(this);
 }