コード例 #1
0
ファイル: JobLauncher.cs プロジェクト: MichalTecl/Elsa
        public void LaunchJob(IJobSchedule jobEntry)
        {
            IExecutableJob jobExecutable = null;

            try
            {
                m_log.Info($"Vytvarim instanci {jobEntry.ScheduledJob.ModuleClass}");
                jobExecutable = m_serviceLocator.InstantiateNow <IExecutableJob>(jobEntry.ScheduledJob.ModuleClass);

                if (jobExecutable == null)
                {
                    throw new InvalidOperationException("Cannot instantiate the job");
                }

                m_log.Info($"Job instance created {jobExecutable}");
            }
            catch (Exception ex)
            {
                m_log.Error("Job instantiation failed", ex);
                return;
            }

            m_scheduledJobs.MarkJobStarted(jobEntry);

            try
            {
                m_log.Info("Spoustim job");
                jobExecutable.Run(jobEntry.ScheduledJob.CustomData);

                m_log.Info("Job uspesne dokoncen");
                m_scheduledJobs.MarkJobSucceeded(jobEntry);
            }
            catch (Exception ex)
            {
                m_log.Error("Job selhal", ex);
                m_scheduledJobs.MarkJobFailed(jobEntry);
            }
        }
コード例 #2
0
ファイル: ElsaJobRepo.cs プロジェクト: MichalTecl/Elsa
 public void OnJobFailed(IJob job, Exception ex)
 {
     m_scheduledJobs.MarkJobFailed(m_scheduledJobs.GetJobByUid(job.Uid));
 }