public List <JobInstance> QueueJob(Integration integration, IEnumerable <DataSource> sourceSideDataSourcesToRun, Job jobToRun,
                                           DateTime scheduledStartTime, string invocationSource, JobInvocationSourceType invocationType)
        {
            try
            {
                return(JobQueueManager.QueueJob(integration, sourceSideDataSourcesToRun, jobToRun, scheduledStartTime, invocationSource, invocationType));
            }
            catch (Exception ex)
            {
                SyncEngineLogger.WriteExceptionToLog(ex, WEB_SERVICE_EXCEPTION_MESSAGE);

                throw;
            }
        }
        public JobInstance QueueJobWithFilters(Integration integration, DataSource sourceSideDataSourceToRun, Job jobToRun,
                                               DateTime scheduledStartTime, string invocationSource, JobInvocationSourceType invocationType, List <JobFilter> filters)
        {
            try
            {
                return(JobQueueManager.QueueJob(integration, sourceSideDataSourceToRun, jobToRun, scheduledStartTime, invocationSource, invocationType, filters));
            }
            catch (Exception ex)
            {
                SyncEngineLogger.WriteExceptionToLog(ex, WEB_SERVICE_EXCEPTION_MESSAGE);

                throw;
            }
        }
Example #3
0
        public void ExecuteJob(string jobName, JobTerminateOnErrorType jobTerminateOnErrorType, Type[] jobStepTypes)
        {
            var job = new Job(Guid.NewGuid(), jobName);

            job.TerminateOnErrorType = jobTerminateOnErrorType;

            job.AddDataSource(_sourceSideDataSource, SyncSide.Source);
            job.AddDataSource(_targetSideDataSource, SyncSide.Target);

            foreach (var jobStepType in jobStepTypes)
            {
                var jobStep = new JobStep(Guid.NewGuid(), jobStepType.Name, jobStepType.FullName);

                job.AddStep(jobStep);
            }

            JobQueueManager.QueueJob(_integration, _sourceSideDataSource, job, DateTime.Now, Path.GetFileName(Assembly.GetCallingAssembly().Location), JobInvocationSourceType.OnDemand);

            while (JobQueueManager.HasWaitingJobs || JobQueueManager.HasRunningJobs)
            {
                Thread.Sleep(500);
            }
        }