void CronTriggerDisplay_Load(object sender, EventArgs e)
        {
            txtCronExpression.Text  = mTrigger.CronExpressionString;
            lblCronDescription.Text = ExpressionDescriptor.GetDescription(mTrigger.CronExpressionString);
            lblDescription.Text     = mTrigger.Description;
            lblGroup.Text           = mTrigger.Key.Group;
            lblName.Text            = mTrigger.Key.Name;
            if (mTrigger.GetNextFireTimeUtc().HasValue)
            {
                lblNextFireTime.Text = mTrigger.GetNextFireTimeUtc().Value.ToLocalTime().ToString();
            }
            else
            {
                lblNextFireTime.Text = @"Unknown";
            }

            if (mTrigger.GetPreviousFireTimeUtc().HasValue)
            {
                lblPreviousFireTime.Text = mTrigger.GetPreviousFireTimeUtc().Value.ToLocalTime().ToString();
            }
            else
            {
                lblPreviousFireTime.Text = @"Unknown";
            }
        }
Example #2
0
        public Task_t[] All()
        {
            var jobs = TaskHelper.Tasks.ToArray();

            for (int i = 0; i < jobs.Length; i++)
            {
                //获取上一次和下一次执行时间以及任务状态
                JobKey           key      = new JobKey(jobs[i].Name, jobs[i].Name);
                IJobDetail       detail   = TaskHelper.sche.GetJobDetail(key);
                IList <ITrigger> triggers = TaskHelper.sche.GetTriggersOfJob(key);
                if (triggers.Count > 0)
                {
                    ICronTrigger   croTri = triggers[0] as ICronTrigger;
                    DateTimeOffset?dtoff  = croTri.GetPreviousFireTimeUtc();
                    if (dtoff != null && dtoff.ToString() != "")
                    {
                        jobs[i].LastDate = TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime(dtoff.ToString())).ToString("yyyy-MM-dd HH:mm:ss");
                    }
                    else
                    {
                        jobs[i].LastDate = "";
                    }
                    dtoff = croTri.GetNextFireTimeUtc();
                    if (dtoff != null && dtoff.ToString() != "")
                    {
                        jobs[i].NextDate = TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime(dtoff.ToString())).ToString("yyyy-MM-dd HH:mm:ss");
                    }
                    else
                    {
                        jobs[i].NextDate = "";
                    }
                    TriggerState state = TaskHelper.sche.GetTriggerState(croTri.Key);

                    if (state == TriggerState.Complete)
                    {
                        jobs[i].State = "完成";
                    }
                    else if (state == TriggerState.Error)
                    {
                        jobs[i].State = "出错";
                    }
                    else if (state == TriggerState.None)
                    {
                        jobs[i].State = "无";
                    }
                    else if (state == TriggerState.Normal)
                    {
                        jobs[i].State = "正常";
                    }
                    else if (state == TriggerState.Paused)
                    {
                        jobs[i].State = "暂停";
                    }
                    else if (state == TriggerState.Blocked)
                    {
                        jobs[i].State = "锁定";
                    }
                }
            }

            return(jobs);
        }
Example #3
0
        public List <JackJob> GetAllJobs()
        {
            try
            {
                System.Configuration.ConfigurationManager.GetSection("JackTime2RunJobs");
                JackJob[] jobs = new JackJob[JobHelper.Jobs.Count];
                for (int i = 0; i < JobHelper.Jobs.Count; i++)
                {
                    jobs[i] = new JackJob()
                    {
                        Name            = JobHelper.Jobs[i].Name,
                        Cron            = JobHelper.Jobs[i].Cron,
                        LogWhen         = JobHelper.Jobs[i].LogWhen,
                        JobType         = JobHelper.Jobs[i].JobType,
                        SearchPath      = JobHelper.Jobs[i].SearchPath,
                        TypeName        = JobHelper.Jobs[i].TypeName,
                        SrcCodeFilePath = JobHelper.Jobs[i].SrcCodeFilePath,
                        Method          = JobHelper.Jobs[i].Method,
                        Enable          = JobHelper.Jobs[i].Enable,
                        LastDate        = JobHelper.Jobs[i].LastDate,
                        NextDate        = JobHelper.Jobs[i].NextDate,
                        State           = JobHelper.Jobs[i].State
                    };
                    jobs[i].Paras = new List <string>();
                    for (int j = 0; j < JobHelper.Jobs[i].Paras.Count; j++)
                    {
                        jobs[i].Paras.Add(JobHelper.Jobs[i].Paras[j]);
                    }
                }
                for (int i = 0; i < jobs.Length; i++)
                {
                    //转化日志类型
                    if (jobs[i].LogWhen == "0")
                    {
                        jobs[i].LogWhen = "一定记录";
                    }
                    else if (jobs[i].LogWhen == "1")
                    {
                        jobs[i].LogWhen = "成功时记录";
                    }
                    else if (jobs[i].LogWhen == "2")
                    {
                        jobs[i].LogWhen = "失败时记录";
                    }
                    //转化任务类型
                    if (jobs[i].JobType == "0")
                    {
                        jobs[i].JobType = "动态库";
                    }
                    else if (jobs[i].JobType == "1")
                    {
                        jobs[i].JobType = "单个cs文件";
                    }
                    else if (jobs[i].JobType == "2")
                    {
                        jobs[i].JobType = "exe程序";
                    }
                    //转化使用标志
                    if (jobs[i].Enable == "0")
                    {
                        jobs[i].Enable = "禁用";
                    }
                    else if (jobs[i].Enable == "1")
                    {
                        jobs[i].Enable = "可用";
                    }

                    //获取上一次和下一次执行时间以及任务状态
                    JobKey           key      = new JobKey(jobs[i].Name, jobs[i].Name);
                    IJobDetail       detail   = JobHelper.sche.GetJobDetail(key);
                    IList <ITrigger> triggers = JobHelper.sche.GetTriggersOfJob(key);
                    if (triggers.Count > 0)
                    {
                        ICronTrigger   croTri = triggers[0] as ICronTrigger;
                        DateTimeOffset?dtoff  = croTri.GetPreviousFireTimeUtc();
                        if (dtoff != null && dtoff.ToString() != "")
                        {
                            jobs[i].LastDate = TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime(dtoff.ToString())).ToString("yyyy-MM-dd HH:mm:ss");
                        }
                        else
                        {
                            jobs[i].LastDate = "";
                        }
                        dtoff = croTri.GetNextFireTimeUtc();
                        if (dtoff != null && dtoff.ToString() != "")
                        {
                            jobs[i].NextDate = TimeZone.CurrentTimeZone.ToLocalTime(Convert.ToDateTime(dtoff.ToString())).ToString("yyyy-MM-dd HH:mm:ss");
                        }
                        else
                        {
                            jobs[i].NextDate = "";
                        }
                        TriggerState state = JobHelper.sche.GetTriggerState(croTri.Key);

                        if (state == TriggerState.Complete)
                        {
                            jobs[i].State = "完成";
                        }
                        else if (state == TriggerState.Error)
                        {
                            jobs[i].State = "出错";
                        }
                        else if (state == TriggerState.None)
                        {
                            jobs[i].State = "无";
                        }
                        else if (state == TriggerState.Normal)
                        {
                            jobs[i].State = "正常";
                        }
                        else if (state == TriggerState.Paused)
                        {
                            jobs[i].State = "暂停";
                        }
                        else if (state == TriggerState.Blocked)
                        {
                            jobs[i].State = "锁定";
                        }
                    }
                }
                return(jobs.ToList());
            }
            catch (Exception ex)
            {
                Time2RunSrv.WriteLog("管理端:【Manager】拉去任务失败:" + ex.ToString());
                return(null);
            }
        }