コード例 #1
0
        /// <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);
        }