/// <summary> /// Called by the Quartz Scheduler at the time of the trigger firing /// in order to produce a IJob instance on which to call execute /// </summary> /// <param name="bundle"></param> /// <param name="scheduler"></param> /// <returns></returns> public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler) { bundle.ThrowIfNull(nameof(bundle)); scheduler.ThrowIfNull(nameof(scheduler)); var jobDetail = bundle.JobDetail; var newJob = (IJob)_container.TryResolve(jobDetail.JobType); if (newJob == null) { throw new SchedulerConfigException( $"Failed to instantiate Job {jobDetail.Key} of type {jobDetail.JobType}"); } LogManager.GetLogger(typeof(FunqJobFactory)).DebugFormat("Created new Job {JobGroup}:{JobName} of {JobType}", jobDetail.Key.Group, jobDetail.Key.Name, jobDetail.JobType); return(newJob); }