Exemple #1
0
        protected override void ProcessJobResult(FinishedJobInfo jobResult)
        {
            Guid scheduledJobId = jobResult.get_ScheduledJobId();

            OneTimeJobManager.PendingJobItem pendingJobItem;
            if (this.pendingJobs.TryGetValue(scheduledJobId, out pendingJobItem))
            {
                OneTimeJobRawResult result = new OneTimeJobRawResult();
                try
                {
                    result.Success = jobResult.get_Result().get_State() == 6 && string.IsNullOrEmpty(jobResult.get_Result().get_Error());
                    if (jobResult.get_Result().get_IsResultStreamed())
                    {
                        using (IJobSchedulerHelper ijobSchedulerHelper = this.jobSchedulerHelperFactory())
                        {
                            using (Stream jobResultStream = ((IJobScheduler)ijobSchedulerHelper).GetJobResultStream(jobResult.get_Result().get_JobId(), "JobResult"))
                            {
                                result.JobResultStream = (Stream) new DynamicStream();
                                jobResultStream.CopyTo(result.JobResultStream);
                                result.JobResultStream.Position = 0L;
                            }
                            ((IJobScheduler)ijobSchedulerHelper).DeleteJobResult(jobResult.get_Result().get_JobId());
                        }
                    }
                    else if (jobResult.get_Result().get_Output() != null && jobResult.get_Result().get_Output().Length != 0)
                    {
                        result.JobResultStream = (Stream) new MemoryStream(jobResult.get_Result().get_Output());
                    }
                    result.Error = jobResult.get_Result().get_Error();
                    OneTimeJobManager.Logger.InfoFormat("Result of one time job {0} received", (object)scheduledJobId);
                }
                catch (Exception ex)
                {
                    result.Success = false;
                    result.Error   = Resources.get_TestErrorInvalidResult();
                    OneTimeJobManager.Logger.ErrorFormat("Failed to process result of one time job {0}: {1}", (object)scheduledJobId, (object)ex);
                }
                pendingJobItem.Done(result);
            }
            else
            {
                OneTimeJobManager.Logger.ErrorFormat("Result of unknown job {0} received", (object)scheduledJobId);
                if (jobResult.get_Result() == null || !jobResult.get_Result().get_IsResultStreamed())
                {
                    return;
                }
                using (IJobSchedulerHelper ijobSchedulerHelper = this.jobSchedulerHelperFactory())
                    ((IJobScheduler)ijobSchedulerHelper).DeleteJobResult(jobResult.get_Result().get_JobId());
            }
        }
Exemple #2
0
        protected override void ProcessJobFailure(FinishedJobInfo jobResult)
        {
            Guid scheduledJobId = jobResult.get_ScheduledJobId();

            OneTimeJobManager.PendingJobItem pendingJobItem;
            if (this.pendingJobs.TryGetValue(scheduledJobId, out pendingJobItem))
            {
                OneTimeJobRawResult result = new OneTimeJobRawResult()
                {
                    Success = false,
                    Error   = Resources.get_TestErrorJobFailed()
                };
                OneTimeJobManager.Logger.WarnFormat("Job {0} failed with error: {1}", (object)scheduledJobId, (object)jobResult.get_Result().get_Error());
                pendingJobItem.Done(result);
            }
            else
            {
                OneTimeJobManager.Logger.ErrorFormat("Failure of unknown job {0} received", (object)scheduledJobId);
            }
        }