- 1 /// <summary>
- 2 /// 添加一个队列任务立即被执行
- 3 /// </summary>
- 4 /// <param name="httpJob"></param>
- 5 /// <returns></returns>
- 6 [HttpPost, Route("AddBackGroundJob")]
- 7 public JsonResult AddBackGroundJob([FromBody] Hangfire.HttpJob.Server.HttpJobItem httpJob)
- 8 {
- 9 var addreslut = string.Empty;
- 10 try
- 11 {
- 12 addreslut = BackgroundJob.Enqueue(() => Hangfire.HttpJob.Server.HttpJob.Excute(httpJob, httpJob.JobName, null));
- 13 }
- 14 catch (Exception ec)
- 15 {
- 16 return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
- 17 }
- 18 return Json(new Message() { Code = true, ErrorMessage = "" });
- 19 }
- 20
- 21 /// <summary>
- 22 /// 添加一个周期任务
- 23 /// </summary>
- 24 /// <param name="httpJob"></param>
- 25 /// <returns></returns>
- 26 [HttpPost, Route("AddOrUpdateRecurringJob")]
- 27 public JsonResult AddOrUpdateRecurringJob([FromBody] Hangfire.HttpJob.Server.HttpJobItem httpJob)
- 28 {
- 29 try
- 30 {
- 31 RecurringJob.AddOrUpdate(httpJob.JobName, () => Hangfire.HttpJob.Server.HttpJob.Excute(httpJob, httpJob.JobName, null), httpJob.Corn, TimeZoneInfo.Local);
- 32 }
- 33 catch (Exception ec)
- 34 {
- 35 return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
- 36 }
- 37 return Json(new Message() { Code = true, ErrorMessage = "" });
- 38 }
- 39
- 40 /// <summary>
- 41 /// 删除一个周期任务
- 42 /// </summary>
- 43 /// <param name="jobname"></param>
- 44 /// <returns></returns>
- 45 [HttpGet,Route("DeleteJob")]
- 46 public JsonResult DeleteJob(string jobname)
- 47 {
- 48 try
- 49 {
- 50 RecurringJob.RemoveIfExists(jobname);
- 51 }
- 52 catch (Exception ec)
- 53 {
- 54 return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
- 55 }
- 56 return Json(new Message() { Code = true, ErrorMessage = "" });
- 57 }
- 58 /// <summary>
- 59 /// 手动触发一个任务
- 60 /// </summary>
- 61 /// <param name="jobname"></param>
- 62 /// <returns></returns>
- 63 [HttpGet, Route("TriggerRecurringJob")]
- 64 public JsonResult TriggerRecurringJob(string jobname)
- 65 {
- 66 try
- 67 {
- 68 RecurringJob.Trigger(jobname);
- 69 }
- 70 catch (Exception ec)
- 71 {
- 72 return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
- 73 }
- 74 return Json(new Message() { Code = true, ErrorMessage = "" });
- 75 }
- 76 /// <summary>
- 77 /// 添加一个延迟任务
- 78 /// </summary>
- 79 /// <param name="httpJob">httpJob.DelayFromMinutes(延迟多少分钟执行)</param>
- 80 /// <returns></returns>
- 81 [HttpPost, Route("AddScheduleJob")]
- 82 public JsonResult AddScheduleJob([FromBody] Hangfire.HttpJob.Server.HttpJobItem httpJob)
- 83 {
- 84 var reslut = string.Empty;
- 85 try
- 86 {
- 87 reslut = BackgroundJob.Schedule(() => Hangfire.HttpJob.Server.HttpJob.Excute(httpJob, httpJob.JobName, null), TimeSpan.FromMinutes(httpJob.DelayFromMinutes));
- 88 }
- 89 catch (Exception ec)
- 90 {
- 91 return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
- 92 }
- 93 return Json(new Message() { Code = true, ErrorMessage = "" });
- 94 }
- 95 /// <summary>
- 96 /// 添加连续任务,多个任务依次执行,只执行一次
- 97 /// </summary>
- 98 /// <param name="httpJob"></param>
- 99 /// <returns></returns>
- 100 [HttpPost, Route("AddContinueJob")]
- 101 public JsonResult AddContinueJob([FromBody] List<Hangfire.HttpJob.Server.HttpJobItem> httpJobItems)
- 102 {
- 103 var reslut = string.Empty;
- 104 var jobid = string.Empty;
- 105 try
- 106 {
- 107 httpJobItems.ForEach(k =>
- 108 {
- 109 if (!string.IsNullOrEmpty(jobid))
- 110 {
- 111 jobid = BackgroundJob.ContinueJobWith(jobid, () => RunContinueJob(k));
- 112 }
- 113 else
- 114 {
- 115 jobid = BackgroundJob.Enqueue(() => Hangfire.HttpJob.Server.HttpJob.Excute(k, k.JobName, null));
- 116 }
- 117 });
- 118 reslut = "true";
- 119 }
- 120 catch (Exception ec)
- 121 {
- 122 return Json(new Message() { Code = false, ErrorMessage = ec.ToString() });
- 123 }
- 124 return Json(new Message() { Code = true, ErrorMessage = "" });
- 125 }