コード例 #1
0
        public void RunTestWithSuppliedDbConfig()
        {
            IJobOperator jobOperator = BatchRuntime.GetJobOperator(new MyDbUnityLoader());

            Assert.IsInstanceOfType(jobOperator, typeof(SimpleJobOperator));
            Type         t           = jobOperator.GetType();
            PropertyInfo f           = t.GetProperty("JobLauncher", BindingFlags.Instance | BindingFlags.Public);
            IJobLauncher jobLauncher = (IJobLauncher)f.GetValue(jobOperator);

            Assert.IsNotNull(jobLauncher);
            Assert.IsInstanceOfType(jobLauncher, typeof(SimpleJobLauncher));
            PropertyInfo   f2            = t.GetProperty("JobRepository", BindingFlags.Instance | BindingFlags.Public);
            IJobRepository jobRepository = (IJobRepository)f2.GetValue(jobOperator);

            Assert.IsNotNull(jobRepository);
            Assert.IsInstanceOfType(jobRepository, typeof(SimpleJobRepository));
            PropertyInfo        f3          = t.GetProperty("JobRegistry", BindingFlags.Instance | BindingFlags.Public);
            IListableJobLocator jobRegistry = (IListableJobLocator)f3.GetValue(jobOperator);

            Assert.IsNotNull(jobRegistry);
            Assert.IsInstanceOfType(jobRegistry, typeof(MapJobRegistry));
            PropertyInfo f4          = t.GetProperty("JobExplorer", BindingFlags.Instance | BindingFlags.Public);
            IJobExplorer jobExplorer = (IJobExplorer)f4.GetValue(jobOperator);

            Assert.IsNotNull(jobExplorer);
            Assert.IsInstanceOfType(jobExplorer, typeof(SimpleJobExplorer));
            FieldInfo       f5  = jobRepository.GetType().GetField("_jobInstanceDao", BindingFlags.Instance | BindingFlags.NonPublic);
            IJobInstanceDao dao = (IJobInstanceDao)f5.GetValue(jobRepository);

            Assert.IsNotNull(dao);
            Assert.IsInstanceOfType(dao, typeof(DbJobInstanceDao));
        }
コード例 #2
0
        /// <summary>
        /// Retrieves the last failed job execution for the given job identifier;
        /// Might be null if not found.
        /// </summary>
        /// <param name="jobIdentifier"></param>
        /// <param name="jobExplorer"></param>
        /// <returns></returns>
        private static JobExecution GetLastFailedJobExecution(string jobIdentifier, IJobExplorer jobExplorer)
        {
            List <JobExecution> jobExecutions =
                GetJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.Stopping, jobExplorer);

            if (!jobExecutions.Any())
            {
                return(null);
            }
            return(jobExecutions[0]);
        }
コード例 #3
0
        /// <summary>
        /// Retrieves all job executions for a given minimal status
        /// </summary>
        /// <param name="jobIdentifier"></param>
        /// <param name="minStatus"></param>
        /// <param name="jobExplorer"></param>
        /// <returns></returns>
        private static List <JobExecution> GetJobExecutionsWithStatusGreaterThan(string jobIdentifier, BatchStatus minStatus, IJobExplorer jobExplorer)
        {
            long?executionId = GetLongIdentifier(jobIdentifier);

            if (executionId != null)
            {
                JobExecution jobExecution = jobExplorer.GetJobExecution(executionId.Value);
                if (jobExecution.Status.IsGreaterThan(minStatus))
                {
                    return(new List <JobExecution> {
                        jobExecution
                    });
                }
                //empmty list
                return(new List <JobExecution>());
            }

            int start = 0;
            int count = 100;
            List <JobExecution> executions    = new List <JobExecution>();
            IList <JobInstance> lastInstances = jobExplorer.GetJobInstances(jobIdentifier, start, count);

            while (lastInstances.Any())
            {
                foreach (JobInstance jobInstance in lastInstances)
                {
                    IList <JobExecution> jobExecutions = jobExplorer.GetJobExecutions(jobInstance);
                    if (jobExecutions == null || !jobExecutions.Any())
                    {
                        continue;
                    }
                    executions.AddRange(jobExecutions.Where(jobExecution => jobExecution.Status.IsGreaterThan(minStatus)));
                }

                start        += count;
                lastInstances = jobExplorer.GetJobInstances(jobIdentifier, start, count);
            }

            return(executions);
        }
コード例 #4
0
        /// <summary>
        /// Retrieves the stopped job executions for the given job identifier;
        /// Might be null if nothing found.
        /// </summary>
        /// <param name="jobIdentifier"></param>
        /// <param name="jobExplorer"></param>
        /// <returns></returns>
        private static List <JobExecution> GetStoppedJobExecutions(string jobIdentifier, IJobExplorer jobExplorer)
        {
            List <JobExecution> jobExecutions =
                GetJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.Started, jobExplorer);

            if (!jobExecutions.Any())
            {
                return(null);
            }
            return(jobExecutions.Where(jobExecution => jobExecution.Status != BatchStatus.Abandoned).ToList());
        }
コード例 #5
0
        /// <summary>
        /// Retrieves the running job executions for the given job identifier;
        /// Might be null if nothing found.
        /// </summary>
        /// <param name="jobIdentifier"></param>
        /// <param name="jobExplorer"></param>
        /// <returns></returns>
        private static List <JobExecution> GetRunningJobExecutions(string jobIdentifier, IJobExplorer jobExplorer)
        {
            List <JobExecution> jobExecutions =
                GetJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.Completed, jobExplorer);

            if (!jobExecutions.Any())
            {
                return(null);
            }
            return(jobExecutions.Where(jobExecution => jobExecution.IsRunning()).ToList());
        }
コード例 #6
0
ファイル: JobStarter.cs プロジェクト: pkubryk/SummerBatch
        /// <summary>
        /// Retrieves all job executions for a given minimal status 
        /// </summary>
        /// <param name="jobIdentifier"></param>
        /// <param name="minStatus"></param>
        /// <param name="jobExplorer"></param>
        /// <returns></returns>
        private static List<JobExecution> GetJobExecutionsWithStatusGreaterThan(string jobIdentifier, BatchStatus minStatus, IJobExplorer jobExplorer)
        {

            long? executionId = GetLongIdentifier(jobIdentifier);
            if (executionId != null)
            {
                JobExecution jobExecution = jobExplorer.GetJobExecution(executionId.Value);
                if (jobExecution.Status.IsGreaterThan(minStatus))
                {
                    return new List<JobExecution> { jobExecution };
                }
                //empmty list
                return new List<JobExecution>();
            }

            int start = 0;
            int count = 100;
            List<JobExecution> executions = new List<JobExecution>();
            IList<JobInstance> lastInstances = jobExplorer.GetJobInstances(jobIdentifier, start, count);

            while (lastInstances.Any())
            {

                foreach (JobInstance jobInstance in lastInstances)
                {
                    IList<JobExecution> jobExecutions = jobExplorer.GetJobExecutions(jobInstance);
                    if (jobExecutions == null || !jobExecutions.Any())
                    {
                        continue;
                    }
                    executions.AddRange(jobExecutions.Where(jobExecution => jobExecution.Status.IsGreaterThan(minStatus)));
                }

                start += count;
                lastInstances = jobExplorer.GetJobInstances(jobIdentifier, start, count);

            }

            return executions;

        }
コード例 #7
0
ファイル: JobStarter.cs プロジェクト: pkubryk/SummerBatch
 /// <summary>
 /// Retrieves the stopped job executions for the given job identifier;
 /// Might be null if nothing found.
 /// </summary>
 /// <param name="jobIdentifier"></param>
 /// <param name="jobExplorer"></param>
 /// <returns></returns>
 private static List<JobExecution> GetStoppedJobExecutions(string jobIdentifier, IJobExplorer jobExplorer)
 {
     List<JobExecution> jobExecutions =
         GetJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.Started, jobExplorer);
     if (!jobExecutions.Any())
     {
         return null;
     }
     return jobExecutions.Where(jobExecution => jobExecution.Status != BatchStatus.Abandoned).ToList();
 }
コード例 #8
0
ファイル: JobStarter.cs プロジェクト: pkubryk/SummerBatch
 /// <summary>
 /// Retrieves the running job executions for the given job identifier;
 /// Might be null if nothing found.
 /// </summary>
 /// <param name="jobIdentifier"></param>
 /// <param name="jobExplorer"></param>
 /// <returns></returns>
 private static List<JobExecution> GetRunningJobExecutions(string jobIdentifier, IJobExplorer jobExplorer)
 {
     List<JobExecution> jobExecutions =
         GetJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.Completed, jobExplorer);
     if (!jobExecutions.Any())
     {
         return null;
     }
     return jobExecutions.Where(jobExecution => jobExecution.IsRunning()).ToList();
 }
コード例 #9
0
ファイル: JobStarter.cs プロジェクト: pkubryk/SummerBatch
 /// <summary>
 /// Retrieves the last failed job execution for the given job identifier;
 /// Might be null if not found.
 /// </summary>
 /// <param name="jobIdentifier"></param>
 /// <param name="jobExplorer"></param>
 /// <returns></returns>
 private static JobExecution GetLastFailedJobExecution(string jobIdentifier, IJobExplorer jobExplorer)
 {
     List<JobExecution> jobExecutions =
         GetJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.Stopping, jobExplorer);
     if (!jobExecutions.Any())
     {
         return null;
     }
     return jobExecutions[0];
 }