Beispiel #1
0
 public SMSSend()
 {
     departmentBLL = new P_DepartmentInfoBLL();
     groupBLL = new P_GroupBLL();
     personBLL = new P_PersonInfoBLL();
     jobTemplateBLL = new J_JobTemplateBLL();
     jobInfoBLL = new J_JobInfoBLL();
     userInfoBLL = new UserInfoBLL();
     smsContentBLL = new S_SMSContentBLL();
     smsRecord_CurrentBLL = new S_SMSRecord_CurrentBLL();
     SetRedisProperties();
 }
Beispiel #2
0
        public void Execute(IJobExecutionContext context)
        {
            ThreadPool.QueueUserWorkItem(delegate (Object o)
            {
                IJ_JobInfoBLL jobBLL = new J_JobInfoBLL();
                try
                {
                    //DoApplication.WriteLogFile(context.JobDetail.Key.Group + "---" + context.JobDetail.Key.Name + "---" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "---" + context.NextFireTimeUtc.Value.DateTime.AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"));
                    //jobBLL.GetListBy
                    //var sm = new WJ_ScheduleManage().GetScheduleModel(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name });
                    //
                    J_JobInfo jobModel = new J_JobInfo()
                    {
                        JobName = context.JobDetail.Key.Name,
                        //JobValue=context.JobDetail.Key.Group,
                        //State=1,//执行中

                    };

                    jobBLL.Create(jobModel);

                    //new WJ_ScheduleManage().UpdateScheduleRunStatus(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name, RunStatus = (int)ADJ.Job.Entity.EnumType.JobRunStatus.执行中 });
                    //ESBRequest req = new ESBRequest(sm.ServiceCode, sm.ApiCode);

                    //DataResult result = req.Request();
                    //new WJ_ScheduleManage().UpdateScheduleRunStatus(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name, RunStatus = (int)ADJ.Job.Entity.EnumType.JobRunStatus.待运行 });
                    //if (result.Code == 1)
                    //{
                    //    #region 加入执行明细
                    //    WJ_ScheduleDetailsEntity dm = new WJ_ScheduleDetailsEntity();
                    //    dm.ActionDescribe = "执行完成:" + result.Message;
                    //    dm.ActionStep = (int)ADJ.Job.Entity.EnumType.JobStep.执行完成;
                    //    dm.CreateTime = DateTime.Now;
                    //    dm.JobGroup = context.JobDetail.Key.Group;
                    //    dm.JobName = context.JobDetail.Key.Name;
                    //    dm.IsSuccess = 1;
                    //    new WJ_ScheduleManage().AddScheduleDetails(dm);
                    //    #endregion
                    //}
                    //else
                    //{
                    //    #region 加入执行明细
                    //    WJ_ScheduleDetailsEntity dm = new WJ_ScheduleDetailsEntity();
                    //    dm.ActionDescribe = "执行任务计划中,执行计划过程出错." + result.Message;
                    //    dm.ActionStep = (int)ADJ.Job.Entity.EnumType.JobStep.执行任务计划中;
                    //    dm.CreateTime = DateTime.Now;
                    //    dm.JobGroup = context.JobDetail.Key.Group;
                    //    dm.JobName = context.JobDetail.Key.Name;
                    //    dm.IsSuccess = 0;
                    //    new WJ_ScheduleManage().AddScheduleDetails(dm);
                    //    #endregion
                    //}
                    //new WJ_ScheduleManage().UpdateScheduleNextTime(new WJ_ScheduleEntity() { JobGroup = context.JobDetail.Key.Group, JobName = context.JobDetail.Key.Name, NextTime = context.NextFireTimeUtc.Value.DateTime.AddHours(8) });
                }
                catch (Exception ex)
                {
                    //#region 加入执行明细
                    //WJ_ScheduleDetailsEntity dm = new WJ_ScheduleDetailsEntity();
                    //dm.ActionDescribe = "执行任务计划中,执行计划过程出错:" + ex.Message + "/r/n" + ex.StackTrace;
                    //dm.ActionStep = (int)ADJ.Job.Entity.EnumType.JobStep.执行任务计划中;
                    //dm.CreateTime = DateTime.Now;
                    //dm.JobGroup = context.JobDetail.Key.Group;
                    //dm.JobName = context.JobDetail.Key.Name;
                    //dm.IsSuccess = 0;
                    //new WJ_ScheduleManage().AddScheduleDetails(dm);
                    //#endregion
                    //DoApplication.WriteLogFile(ex.Message + "\r\n" + ex.StackTrace);
                }
            });
        }
Beispiel #3
0
        public void ExceutedTest(IJobExecutionContext context)
        {
            if (jobInfoBLL == null)
            {
                jobInfoBLL = new J_JobInfoBLL();
            }
            if (userInfoBLL == null)
            {
                userInfoBLL = new UserInfoBLL();
            }
            if (qrtz_triggerBLL == null)
            {
                qrtz_triggerBLL = new QRTZ_TRIGGERSBLL();
            }
            #region 11月8日测试修改数据库的bug,现注释
            //11月8日测试修改数据库的bug,现注释
            //var targetJob = jobInfoBLL.GetListBy(j => j.JID == 18).FirstOrDefault();
            //if (targetJob != null)
            //{
            //    targetJob.JobState = 2;

            //}
            //jobInfoBLL.Update(targetJob);
            #endregion

            //向数据库中写入
            //获取JobDataMap
            var data = context.JobDetail.JobDataMap;
            //1 需要传入一个用户id

            var uid = data.GetInt("UID");
            if (uid != 0)
            {
                //var uid_int = int.Parse(uid);
                var user_temp = userInfoBLL.GetListBy(u => u.ID == uid).FirstOrDefault();
                //2 根据用户id查询查询该用户所拥有的作业
                var list = userInfoBLL.GetJobListByUser(user_temp.ID);

                //3 取出对应的作业
                //取出的context.JobDetail.Key.Name实际为JID
                //**查错,暂时注释**
                var targetJob = (from j in list
                                 where j.JID == Convert.ToInt32(context.JobDetail.Key.Name)  /*&& j.JobGroup == context.JobDetail.Key.Group*/
                                 select j).FirstOrDefault();
                PMS.BLL.J_JobInfoBLL job_temp = new PMS.BLL.J_JobInfoBLL();

                //UpdateJobState(targetJob);
                //4 若存在则更新作业状态
                //**查错,暂时注释**
                if (targetJob != null)
                {
                    //4 更新作业状态的思路
                    //4-1 获取trigger的状态
                    var trigger_temp = qrtz_triggerBLL.GetListBy(t => t.TRIGGER_NAME == context.JobDetail.Key.Name).FirstOrDefault();
                    //注意若完成时其中的
                    if (trigger_temp != null)
                    {
                        var dic = PMS.Model.Dictionary.Quartz_TriggerStateDictionary.GetResponseCode();
                        //4-2获取trigger其他状态
                        //1)修改往数据库中写入的作业状态
                        targetJob.JobState = dic[trigger_temp.TRIGGER_STATE == null ? "null" : trigger_temp.TRIGGER_STATE];
                        //2)修改作业结束时间(世界时需+8)
                        targetJob.EndRunTime = context.Trigger.EndTimeUtc.GetValueOrDefault().DateTime.AddHours(8);
                        //3)修改作业下次执行时间(世界时需+8)
                        if (context.Trigger.GetNextFireTimeUtc() != null)
                        {
                            targetJob.NextRunTime = context.Trigger.GetNextFireTimeUtc().GetValueOrDefault().DateTime.AddHours(8);
                        }
                    }
                    UpdateJobState(targetJob);

                }
                //4 若不存在则创建新的作业
            }
        }