HTML5技术

任务调度之持久化(基于Quartz.net) - 蓝建荣

字号+ 作者:H5之家 来源:H5之家 2017-03-28 12:03 我要评论( )

上一篇我们了解了任务调度及他的远端管理方式,传送门:任务调度及远端管理(基于Quartz.net) 这篇我们要完成任务调度的持久化功能,即新增修改删除之类的功能,这必须得要有的,不然都不知道后台都有什么作业在跑 一、Job的CURD 1.1 、新建Job表 . ( , ( 5

上一篇我们了解了任务调度及他的远端管理方式,传送门:任务调度及远端管理(基于Quartz.net)

这篇我们要完成任务调度的持久化功能,即新增修改删除之类的功能,这必须得要有的,不然都不知道后台都有什么作业在跑

 

一、Job的CURD

1.1 、新建Job表

.( , (50) COLLATE Chinese_PRC_CI_AS NULL, (50) COLLATE Chinese_PRC_CI_AS NULL, (50) COLLATE Chinese_PRC_CI_AS NULL, (50) COLLATE Chinese_PRC_CI_AS NULL, (50) COLLATE Chinese_PRC_CI_AS NULL, , , , , (200) COLLATE Chinese_PRC_CI_AS NULL, , ( )) )

1.2、控制器还是用上一篇的HelloJobController,改一下

HelloJobController : Controller 2 { 3 private IJobApplication jobApplication; HelloJobController(IJobApplication jobApplication) 6 { 7 this.jobApplication = jobApplication; 8 } )] 11 public ActionResult Index(string PageIndex) 12 { 13 Page page = new Page(); 14 page.PageIndex = PageIndex.ToInt(1); model = new JobPageViewModel(); 17 var soure = this.jobApplication.GetPage(page, t => t.CreateTime); 18 19 model.Items = Mapper.Map<List<JobViewModel>>(soure.Item2); 20 model.Total = soure.Item1; 21 model.Page = page; View(model); 24 } 25 26 [HttpPost] 27 [ValidateAntiForgeryToken] 28 public ActionResult Add(JobCURequest entity) 29 { 30 this.jobApplication.Add(new JobCURequest() 31 { 32 Id = Guid.NewGuid(), 33 GroupName = entity.GroupName, 34 JobName = entity.JobName, 35 TriggerName = entity.TriggerName, 36 Cron = entity.Cron, 37 TriggerState = Quartz.TriggerState.None.ToString() 38 }); RedirectToAction(); 41 } 42 43 [HttpGet] 44 public ActionResult Delete(string id) 45 { 46 this.jobApplication.Delete(Guid.Parse(id)); ); 48 } 49 50 [HttpGet] 51 public ActionResult Edit(Guid id) 52 { 53 var soure = this.jobApplication.Get(id); 54 return Json(soure, JsonRequestBehavior.AllowGet); 55 } 56 57 [HttpPost] 58 [ValidateAntiForgeryToken] 59 public ActionResult Edit(JobCURequest entity) 60 { 61 this.jobApplication.Update(new JobCURequest() 62 { 63 Id = entity.Id, 64 GroupName = entity.GroupName, 65 JobName = entity.JobName, 66 TriggerName = entity.TriggerName, 67 Cron = entity.Cron, 68 TriggerState = Quartz.TriggerState.None.ToString() 69 }); RedirectToAction(); 72 }73 }

可以看到我们新加了IJobApplication的注入,以及Index、Add、Delete、Edit(2个)5个方法

至于里边的实现就是我们上一个系列写好的功能,详细情况请点击传送门:架构设计

1.3、 视图View也要改一下

1 @model Presentation.MVC.Models.JobPageViewModel 2 @{ 3 ViewBag.Title = "Index"; 4 Layout = "~/Views/Shared/_Bootstrap.cshtml"; 5 } 新增作业 @using (Html.BeginForm("Add", "HelloJob", null, FormMethod.Post, new { @id = "formHelloJob", @class = "form-horizontal", role = "form" })) 20 { 21 @Html.AntiForgeryToken() 群组作业名称触发器名称执行计划描述提交 } 执行暂停恢复修改删除序号群组作业名称触发器名称执行计划描述开始时间结束时间上次执行下次执行状态 @foreach (var item in Model.Items) 96 { @item.RowNumber@item.GroupName@item.JobName@item.TriggerName@item.Cron@item.Description@item.StartTime@item.EndTime@item.PreTime@item.NextTime@item.TriggerState } @for (int index = 1; index <= Model.TotalPage; index++) 118 { index) 120 { @index } 123 else 124 { @index } 127 } () { () { .checked) { .checked); { ); 138 } 139 }); () { GetChooseIds(); ; 144 145 $.ajax({ id, , , (result) { ).val(result.Id); ).val(result.GroupName); ).val(result.JobName); ).val(result.TriggerName); ).val(result.Cron); ).val(result.Description); ); ); ); 160 }, (e) { 162 alert(e); 163 } 164 }); 165 }); () { GetChooseIds(); ; () { id; 173 }); 174 }); () { GetChooseIds(); ; () { id; 182 }); 183 }); () { GetChooseIds(); ; () { id; 191 }); 192 }); () { GetChooseIds(); ; () { id; 200 }); 201 }); GetChooseIds() { ; () { ); 207 }); id; 210 } 211 });

1.4、界面代码就完成了,我们去看看

完全没问题,下面我们来完成 执行、暂停、恢复三个操作作业的按钮功能

 

二、作业管理

2.1、HelloJobHelper改一下,名称我也改了(JobHelper)

2.2、HelloJobController加入上边三个功能

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 开源的.NET定时任务组件Hangfire解析 - 彭泽0902

    开源的.NET定时任务组件Hangfire解析 - 彭泽0902

    2017-03-22 13:00

  • 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑 - Zachary_Fan

    如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化

    2016-12-27 13:06

  • Web数据持久化存储IndexedDB(不常用) - 海角在眼前

    Web数据持久化存储IndexedDB(不常用) - 海角在眼前

    2015-12-18 08:19

  • 用Redis实现分布式锁 与 实现任务队列 - __kelly_

    用Redis实现分布式锁 与 实现任务队列 - __kelly_

    2015-11-23 08:33

网友点评