Пример #1
0
        public bool UpdateHttpJob(JobParamHttpModel job)
        {
            try
            {
                JobKey       jobKey  = CreateJobKey(job.JobName, job.JobGroupName);
                var          jobData = _scheduler.GetJobDetail(jobKey).GetAwaiter().GetResult();
                JobDataModel model   = new JobDataModel();
                model.CallbackUrl    = jobData.JobDataMap[JobConfig.CallbackUrl].ToString();
                model.CallbackParams = JobUtils.GetDictFromString(jobData.JobDataMap[JobConfig.CallbackParams].ToString());

                bool isSameParams = IsSameParam(job, model);
                if (isSameParams)
                {
                    return(ModifyJobCron(job));
                }
                else
                {
                    bool bl = DeleteJob(job);
                    if (bl)
                    {
                        return(AddHttpJob(job));
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
            }
            return(false);
        }
Пример #2
0
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
                JobDataMap dataMap = context.JobDetail.JobDataMap;

                string callbackUrl = dataMap.GetString(JobConfig.CallbackUrl);

                Dictionary <string, string> param = new Dictionary <string, string>();

                if (dataMap.ContainsKey(JobConfig.CallbackParams))
                {
                    string callbackParams = dataMap.GetString(JobConfig.CallbackParams);
                    param = JobUtils.GetDictFromString(callbackParams);
                }

                var result = JobUtils.GetHttpPost(callbackUrl, param);

                log.Info(result);

                string res = LogConfig.ExecuteResultSuccess;
                if (!string.IsNullOrEmpty(result))
                {
                    res = $"{res} {result}";
                }

                SchedulerLog.Instance.LogRun(context, res);

                if (context.JobDetail.Key.Group == JobConfig.JobGroupNameOnce)
                {
                    context.Scheduler.DeleteJob(context.JobDetail.Key).GetAwaiter().GetResult();
                }
            }
            catch (Exception ex)
            {
                SchedulerLog.Instance.LogRun(context, LogConfig.ExecuteResultFailed);

                StringBuilder sb = new StringBuilder();
                JobUtils.GetErrMessage(ex, sb);
                SchedulerLog.Instance.LogErr(context, sb.ToString());

                log.Error(ex);
            }

            return(Task.FromResult(true));
        }