Exemple #1
0
        /// <summary>
        /// 获取详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult GetOne(int id)
        {
            var result = new JobInfoBLL();
            var job    = result.GetOne(id);

            return(Success(data: job));
        }
Exemple #2
0
        public ActionResult Update(Job_Info job)
        {
            var bll = new JobInfoBLL();

            if (bll.UpdateJobState(job) > 0)
            {
                return(Success());
            }
            else
            {
                return(Error());
            }
        }
Exemple #3
0
        public ActionResult Add(Job_Info job)
        {
            var bll = new JobInfoBLL();

            if (bll.AddInfo(job) > 0)
            {
                return(Success());
            }
            else
            {
                return(Error());
            }
        }
Exemple #4
0
        public ActionResult List(Pager pager)
        {
            Result <object> result = new Result <object>();

            try
            {
                var jbll       = new JobInfoBLL();
                var TotalCount = jbll.GetJobCount();

                var PageCount = (TotalCount % pager.PageSize) == 0 ? (TotalCount / pager.PageSize) : ((TotalCount / pager.PageSize) + 1);

                List <Job_Info> list = jbll.GetJobList(pager.PageIndex, pager.PageSize);

                result.Data       = list;
                result.PageIndex  = pager.PageIndex;
                result.PageSize   = pager.PageSize;
                result.TotalCount = TotalCount;
                result.TotalPage  = PageCount;
            }
            catch (Exception ex)
            {
            }
            return(Success(result));
        }
Exemple #5
0
        /// <summary>
        /// 执行JOB 用于检查Job_Info表
        /// </summary>
        /// <param name="context"></param>
        public void Execute(IJobExecutionContext context)
        {
            Log4NetHelper.Info("开始获取JobInfo", logger: logger);
            try
            {
                List <Job_Info> jobList = new JobInfoBLL().GetJobList();
                if (jobList != null && jobList.Count > 0)
                {
                    JobKey jobKey = null;
                    foreach (var jobinfo in jobList)
                    {
                        jobKey = new JobKey(jobinfo.Job_name + JobConfig.JOBKEY_NAMEEND, "group1");
                        //只有正常执行状态的Job才添加到调度器中
                        if (!JobConfig.scheduler.CheckExists(jobKey) && jobinfo.Job_state == 0)
                        {
                            IJobDetail job = JobBuilder.Create <RunTaskDLLJob>().WithIdentity(jobKey).Build();

                            //创建触发器
                            TriggerBuilder tb = TriggerBuilder.Create()
                                                .WithIdentity(jobinfo.Job_name + JobConfig.JOBTRIGGER_NAMEEND, "group1");
                            if (!string.IsNullOrEmpty(jobinfo.Job_corn))
                            {
                                tb.WithCronSchedule(jobinfo.Job_corn); //执行corn表达式
                            }
                            if (jobinfo.Job_execount > 0)              //如果执行固定的次数
                            {
                                tb.WithSimpleSchedule(a => a.WithRepeatCount(jobinfo.Job_execount));
                            }

                            if (jobinfo.Job_starttime != null && jobinfo.Job_starttime > DateTime.Now)//设置Job启动时间
                            {
                                tb.StartAt(jobinfo.Job_starttime);
                            }
                            else
                            {
                                tb.StartNow();
                            }

                            ITrigger trigger = tb.Build();
                            //传递参数
                            job.JobDataMap.Add(jobKey.Name, jobinfo.Id);

                            JobConfig.scheduler.ScheduleJob(job, trigger);

                            Log4NetHelper.Info(string.Format("加入Job:{0}成功", jobKey.Name), logger: logger);
                        }
                        else if (JobConfig.scheduler.CheckExists(jobKey))
                        {
                            if (jobinfo.Job_state == 2 || jobinfo.Job_state == 3)
                            {
                                JobConfig.scheduler.PauseJob(jobKey);
                                Log4NetHelper.Info(string.Format("暂停Job:{0}成功", jobKey.Name), logger: logger);
                            }
                            else if (jobinfo.Job_state == 4)
                            {
                                JobConfig.scheduler.DeleteJob(jobKey);
                                Log4NetHelper.Info(string.Format("删除Job:{0}成功", jobKey.Name), logger: logger);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log4NetHelper.Info(string.Format("LoopJob异常:{0},{1},{2}", ex.Message, ex.InnerException, ex.StackTrace), logger: logger);
            }
            Log4NetHelper.Info("结束获取JobInfo", logger: logger);
        }