Beispiel #1
0
        void CronTriggerDisplay_Load(object sender, EventArgs e)
        {
            CronTriggerType triggerType = (CronTriggerType)_triggerData.TriggerType;

            txtCronExpression.Text = triggerType.CronExpression;
            lblDescription.Text    = _triggerData.Description;
            lblGroup.Text          = _triggerData.GroupName;
            lblName.Text           = _triggerData.Name;
            lblStartTime.Text      = _triggerData.StartDate.ToString("yyyy/MM/dd HH:mm:ss");
            if (_triggerData.EndDate.HasValue)
            {
                lblEndTime.Text = Convert.ToDateTime(_triggerData.EndDate).ToString("yyyy/MM/dd HH:mm:ss");
            }
            else
            {
                lblEndTime.Text = string.Empty;
            }
            if (_triggerData.NextFireDate.HasValue)
            {
                lblNextFireTime.Text = Convert.ToDateTime(_triggerData.NextFireDate).ToString("yyyy/MM/dd HH:mm:ss");
            }
            else
            {
                lblNextFireTime.Text = string.Empty;
            }

            if (_triggerData.PreviousFireDate.HasValue)
            {
                lblPreviousFireTime.Text = Convert.ToDateTime(_triggerData.PreviousFireDate).ToString("yyyy/MM/dd HH:mm:ss");
            }
            else
            {
                lblPreviousFireTime.Text = string.Empty;
            }
        }
Beispiel #2
0
        public void TriggerJob(
            string jobName,
            string jobGroup,
            string triggerName,
            TriggerType trigger,
            IDictionary <string, object> jobData)
        {
            TriggerBuilder triggerBuilder = TriggerBuilder
                                            .Create()
                                            .ForJob(jobName, jobGroup);

            if (!string.IsNullOrEmpty(triggerName))
            {
                triggerBuilder = triggerBuilder.WithIdentity(triggerName);
            }

            SimpleTriggerType simpleTrigger = trigger as SimpleTriggerType;

            if (simpleTrigger != null)
            {
                triggerBuilder = triggerBuilder.WithSimpleSchedule(x =>
                {
                    if (simpleTrigger.RepeatCount == -1)
                    {
                        x.RepeatForever();
                    }
                    else
                    {
                        x.WithRepeatCount(simpleTrigger.RepeatCount);
                    }

                    x.WithInterval(TimeSpan.FromMilliseconds(simpleTrigger.RepeatInterval));
                });
            }
            else
            {
                CronTriggerType cronTriggerType = trigger as CronTriggerType;
                if (cronTriggerType != null)
                {
                    triggerBuilder = triggerBuilder.WithCronSchedule(cronTriggerType.CronExpression);
                }
            }

            if (jobData != null)
            {
                triggerBuilder = triggerBuilder.UsingJobData(new JobDataMap(jobData));
            }

            _scheduler.ScheduleJob(triggerBuilder.Build());
        }
        private static TriggerType CreateTriggerType(AddTriggerInput input)
        {
            switch (input.TriggerType)
            {
            case "Simple":
                var simpleTriggerType = new SimpleTriggerType(input.RepeatForever ? -1 : input.RepeatCount, input.RepeatInterval, 0 /* todo */);
                return(simpleTriggerType);

            case "Cron":
                var cronTriggerType = new CronTriggerType(input.CronExpression);
                return(cronTriggerType);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public void Execute_CronTrigger_ShouldPassTriggerData()
        {
            AssertTriggerType(
                new AddTriggerInput
            {
                Job            = "Default",
                TriggerType    = "Cron",
                CronExpression = "0 0 0 0 0 0"
            },
                type =>
            {
                Assert.That(type, Is.InstanceOf <CronTriggerType>());

                CronTriggerType cronTriggerType = (CronTriggerType)type;

                Assert.That(cronTriggerType.CronExpression, Is.EqualTo("0 0 0 0 0 0"));
            });
        }
Beispiel #5
0
        private void loadRunningJobs()
        {
            try
            {
                this.Cursor = Cursors.WaitCursor;
                timer_Refresh_Running_Jobs.Stop();
                listView_RunningJobs.Items.Clear();
                var jobGroups = _schedulerDataProvider.Data.JobGroups;
                this.listView_RunningJobs.BeginUpdate();
                foreach (var jobGroup in jobGroups)
                {
                    foreach (var job in jobGroup.Jobs)
                    {
                        string jobName      = job.UniqueName.Split('_')[1];
                        string jobGroupName = job.GroupName;
                        foreach (var trigger in job.Triggers)
                        {
                            string triggerName = trigger.Name;
                            string startDate   = trigger.StartDate.ToString("yyyy-MM-dd HH:mm:ss");
                            string endDate     = string.Empty;
                            if (trigger.EndDate.HasValue)
                            {
                                endDate = Convert.ToDateTime(trigger.EndDate).ToString("yyyy-MM-dd HH:mm:ss");
                            }
                            string previousFireDate = string.Empty;
                            if (trigger.PreviousFireDate.HasValue)
                            {
                                previousFireDate = Convert.ToDateTime(trigger.PreviousFireDate).ToString("yyyy-MM-dd HH:mm:ss");
                            }
                            string nextFireDate = string.Empty;
                            if (trigger.NextFireDate.HasValue)
                            {
                                nextFireDate = Convert.ToDateTime(trigger.NextFireDate).ToString("yyyy-MM-dd HH:mm:ss");
                            }
                            string triggerTypeMessage = string.Empty;
                            if (trigger.TriggerType.Code == "cron")
                            {
                                CronTriggerType triggerType = (CronTriggerType)trigger.TriggerType;
                                triggerTypeMessage = triggerType.CronExpression;
                            }
                            else if (trigger.TriggerType.Code == "simple")
                            {
                                SimpleTriggerType triggerType = (SimpleTriggerType)trigger.TriggerType;
                                triggerTypeMessage = GetSimpleTriggerTypeMessage(triggerType);
                            }
                            ListViewItem item = new ListViewItem(new[]
                            {
                                jobName,
                                jobGroupName,
                                triggerName,
                                trigger.GroupName,
                                triggerTypeMessage,
                                startDate,
                                //endDate,
                                previousFireDate,
                                nextFireDate,
                                trigger.Status.ToString()
                            });
                            listView_RunningJobs.Items.Add(item);
                        }
                    }
                }
                for (int i = 0; i < listView_RunningJobs.Columns.Count; i++)
                {
                    listView_RunningJobs.Columns[i].Width = -1;
                }
                this.listView_RunningJobs.EndUpdate();
                int timer_was = timer_Refresh_Running_Jobs.Interval;
                timer_Refresh_Running_Jobs.Interval = timer_was + 1;
                timer_Refresh_Running_Jobs.Interval = timer_was;

                timer_Refresh_Running_Jobs.Start();
            }
            catch (Exception exception)
            {
                throw exception;
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }