Ejemplo n.º 1
0
        public override void JobWasExecuted(Quartz.IJobExecutionContext context, Quartz.JobExecutionException jobException)
        {
            base.JobWasExecuted(context, jobException);

            long scheduledTaskId = (long)context.MergedJobDataMap["scheduledTaskId"];
            ScheduledTaskRunStatistics lastRunStatistics = new ScheduledTaskRunStatistics();

            lastRunStatistics.StartTimeUtc = context.FireTimeUtc.HasValue ? context.FireTimeUtc.Value.DateTime : new DateTime?();
            lastRunStatistics.EndTimeUtc   = context.FireTimeUtc.HasValue ? context.FireTimeUtc.Value.Add(context.JobRunTime).DateTime : new DateTime?();
            if (jobException != null)
            {
                lastRunStatistics.Status = ScheduledTaskStatus.Failed;
                lastRunStatistics.Error  = jobException.Message;
            }
            else
            {
                ExecuteSequenceJobResult result = (ExecuteSequenceJobResult)context.Result;
                lastRunStatistics.Status = result.RunStatus;
                lastRunStatistics.Error  = result.RunError;
            }

            string connectionString         = (string)context.MergedJobDataMap["connectionString"];
            SchedulingController controller = new SchedulingController(connectionString);

            controller.SetScheduledTaskLastRunStatistics(scheduledTaskId, lastRunStatistics);

            zOnTaskComplete(new TaskEventArgs(scheduledTaskId));

            m_IsJobRunning = false;
        }
Ejemplo n.º 2
0
        public virtual async System.Threading.Tasks.Task Execute(Quartz.IJobExecutionContext context)
        {
            if (context.CancellationToken.IsCancellationRequested)
            {
                Console.WriteLine("取消执行。");
                return;
            }
            try
            {
                DistributingData disriObj =
                    context.JobDetail.JobDataMap.Get("distriData") as DistributingData;

                Console.WriteLine(@"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" + disriObj.DistributeFlag + disriObj.PageIndex.ToString());
            }
            catch (Exception ep)
            {
                Quartz.JobExecutionException jobep = new Quartz.JobExecutionException();
                //jobep.RefireImmediately=false;
                throw jobep;
            }
        }
Ejemplo n.º 3
0
        private JobLogEntry CreateEntry(Quartz.IJobExecutionContext jobContext, string kind, Quartz.JobExecutionException exception = null)
        {
            JobLogEntry entry = new JobLogEntry();

            entry.Group               = jobContext.JobDetail.Key.Group;
            entry.Name                = jobContext.JobDetail.Key.Name;
            entry.Kind                = kind;
            entry.Timestamp           = DateTime.UtcNow;
            entry.JobRunTime          = jobContext.JobRunTime;
            entry.NextFireTimeUtc     = jobContext.NextFireTimeUtc;
            entry.PreviousFireTimeUtc = jobContext.PreviousFireTimeUtc;

            if (exception != null)
            {
                entry.ExceptionMessage    = exception.Message;
                entry.ExceptionStackTrace = exception.StackTrace;
            }

            return(entry);
        }
        private void OneOffJobWasExecuted(Quartz.IJobExecutionContext context, Quartz.JobExecutionException jobException)
        {
            string scriptId = context.JobDetail.Key.Name;

            _view.ChangeScriptStatusThreadSafe(GetScriptById(scriptId));
        }
Ejemplo n.º 5
0
        public void LogJobWasExecuted(Quartz.IJobExecutionContext jobContext, Quartz.JobExecutionException exception)
        {
            var entry = CreateEntry(jobContext, "wasExecuted", exception);

            this.JobLogs.Insert(entry);
        }