Пример #1
0
        public ResponseModel <AddContinueJobResponseModel> AddContinueJob([FromBody] List <HttpJobItem> httpJobItems)
        {
            ResponseModel <AddContinueJobResponseModel> responseModel = new ResponseModel <AddContinueJobResponseModel>();

            responseModel.ResultData = new AddContinueJobResponseModel();


            var reslut = string.Empty;
            var jobid  = string.Empty;

            try
            {
                httpJobItems.ForEach(k =>
                {
                    if (!string.IsNullOrEmpty(jobid))
                    {
                        jobid = BackgroundJob.ContinueJobWith(jobid, () => RunContinueJob(k));
                    }
                    else
                    {
                        jobid = BackgroundJob.Enqueue(() => HttpJob.Excute(k, k.JobName, k.QueueName, k.IsRetry, null));
                    }
                });
                reslut = "true";

                responseModel.ResultData.Result = true;
            }
            catch (Exception ex)
            {
                responseModel.ResultCode = ResponseStatusCode.Error;
                responseModel.ResultDesc = ex.Message;
            }

            return(responseModel);
        }
Пример #2
0
        public ResponseModel <AddRecurringJobResponseModel> AddOrUpdateRecurringJob([FromBody] HttpJobItem httpJob)
        {
            ResponseModel <AddRecurringJobResponseModel> responseModel = new ResponseModel <AddRecurringJobResponseModel>();

            responseModel.ResultData = new AddRecurringJobResponseModel();

            try
            {
                RecurringJob.AddOrUpdate(httpJob.JobName, () => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, httpJob.IsRetry, null), httpJob.Cron, TimeZoneInfo.Local);

                responseModel.ResultData.Result = true;
            }
            catch (Exception ex)
            {
                responseModel.ResultCode = ResponseStatusCode.Error;
                responseModel.ResultDesc = ex.Message;
            }

            return(responseModel);
        }
Пример #3
0
        public ResponseModel <AddScheduleJobResponseModel> AddScheduleJob([FromBody] HttpJobItem httpJob)
        {
            ResponseModel <AddScheduleJobResponseModel> responseModel = new ResponseModel <AddScheduleJobResponseModel>();

            responseModel.ResultData = new AddScheduleJobResponseModel();

            var reslut = string.Empty;

            try
            {
                reslut = BackgroundJob.Schedule(() => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, false, null), TimeSpan.FromMinutes(httpJob.DelayFromMinutes));

                responseModel.ResultData.JobId = reslut;
            }
            catch (Exception ex)
            {
                responseModel.ResultCode = ResponseStatusCode.Error;
                responseModel.ResultDesc = ex.Message;
            }

            return(responseModel);
        }
Пример #4
0
        /// <summary>
        /// 测试计划任务(httpjob)
        /// </summary>
        /// <param name="minutes">多少分钟后执行</param>
        public virtual void AddJobTest(int minutes)
        {
            // 获取配置信息方式一,通过配置管理器

            var deminutes = Convert.ToInt32(_settingManager.GetSettingValue("config.defaultMinutes"));

            //获取配置信息方式二,通过配置文件接口获取
            var deminutes2 = Convert.ToInt32(_appConfigurtaionService.AppConfigurations.defaultMinutes);

            var job = new HttpJobItem()
            {
                JobName          = "PlanJob",
                QueueName        = "apis",
                Method           = "get",
                Url              = "https://www.baidu.com",
                IsRetry          = false,
                Corn             = "",
                DelayFromMinutes = minutes > 0 ? minutes : deminutes
            };

            BackgroundJob.Schedule(() => HttpJob.Excute(job, job.JobName, job.QueueName, job.IsRetry, null), TimeSpan.FromMinutes(job.DelayFromMinutes));
        }
Пример #5
0
        public ResponseModel <AddBackgroundJobResponseModel> AddBackGroundJob([FromBody] HttpJobItem httpJob)
        {
            ResponseModel <AddBackgroundJobResponseModel> responseModel = new ResponseModel <AddBackgroundJobResponseModel>();

            responseModel.ResultData = new AddBackgroundJobResponseModel();

            var addreslut = string.Empty;

            try
            {
                addreslut = BackgroundJob.Enqueue(() => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, false, null));

                responseModel.ResultData.JobId = addreslut;
            }
            catch (Exception ex)
            {
                responseModel.ResultCode = ResponseStatusCode.Error;
                responseModel.ResultDesc = ex.Message;

                //return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
            }
            return(responseModel);
        }
Пример #6
0
 /// <summary>
 /// 执行连续任务
 /// </summary>
 /// <param name="httpJob"></param>
 public void RunContinueJob(HttpJobItem httpJob)
 {
     BackgroundJob.Enqueue(() => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, false, null));
 }