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); }
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); }
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); }
/// <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)); }
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); }
/// <summary> /// 执行连续任务 /// </summary> /// <param name="httpJob"></param> public void RunContinueJob(HttpJobItem httpJob) { BackgroundJob.Enqueue(() => HttpJob.Excute(httpJob, httpJob.JobName, httpJob.QueueName, false, null)); }