java手动添加定时任务_Spring 3整合Quartz 2实现手动设置定时任务:新增,修改,删除,暂停和恢复(附带源码)...

1 packagecom.zealer.cps.task.controller;2

3 importjava.text.SimpleDateFormat;4 importjava.util.Date;5 importjava.util.HashMap;6 importjava.util.Map;7

8 importjavax.annotation.Resource;9 importjavax.servlet.http.HttpServletRequest;10

11 importorg.slf4j.Logger;12 importorg.slf4j.LoggerFactory;13 importorg.springframework.http.HttpStatus;14 importorg.springframework.http.ResponseEntity;15 importorg.springframework.stereotype.Controller;16 importorg.springframework.ui.Model;17 importorg.springframework.web.bind.annotation.ModelAttribute;18 importorg.springframework.web.bind.annotation.RequestMapping;19 importorg.springframework.web.bind.annotation.RequestMethod;20 importorg.springframework.web.bind.annotation.RequestParam;21 importorg.springframework.web.bind.annotation.ResponseBody;22 importorg.springframework.web.servlet.mvc.support.RedirectAttributes;23 importcom.zealer.cps.base.annotation.Log;24 importcom.zealer.cps.base.constant.AppConstant;25 importcom.zealer.cps.base.controller.BaseController;26 importcom.zealer.cps.base.message.SuccessActionResult;27 importcom.zealer.cps.base.model.vo.PaginationBean;28 importcom.zealer.cps.base.util.HttpUtils;29 importcom.zealer.cps.task.manage.JobMethod;30 importcom.zealer.cps.task.service.QuartzJobService;31 importcom.zealer.cps.task.value.ScheduleJob;32 importcom.zealer.cps.task.value.ScheduleJobItem;33 importcom.zealer.cps.task.value.ScheduleJobReq;34

35 @Controller36 @RequestMapping( "/taskController")37 public class TaskController extendsBaseController38 {39 private static Logger log = LoggerFactory.getLogger( TaskController.class);40

41 @Resource( name = "quartzJobService")42 privateQuartzJobService quartzJobService;43

44 @Resource( name = "JobMethod")45 privateJobMethod jobMethod;46

47 @RequestMapping( "/list")48 @Log( "任务列表")49 public String listJob( @ModelAttribute("job") ScheduleJobReq jobReq, Model model, HttpServletRequest request )50 {51 PaginationBean pb =quartzJobService.getJobsByPage( jobReq );52 try{53 pb.setUrl( HttpUtils.getRequestInfo( request, true) );54 } catch( Exception e ) {55 log.error( "get request url error", e );56 }57 model.addAttribute( "pb", pb );58 return("task/taskList");59 }60

61

62 /**

63 * 立即执行定时任务64 *@paramjob 任务实体65 *@parammodel66 *@return

67 */

68 @ResponseBody69 @RequestMapping( value = "/executeJob", produces = "application/json;charset=utf-8")70 @Log( "立即执行任务")71 public ResponseEntity >executeJob( ScheduleJob job, Model model )72 {73 jobMethod.runJobNow( job );74 return(new ResponseEntity > ( new HashMap(), HttpStatus.OK ) );75 }76

77

78 /**

79 * 跳转到添加定时任务的页面80 *@parammodel81 * 储存结果的实体82 */

83 @RequestMapping( value = "/addJob", method =RequestMethod.GET )84 @Log( "初始化添加表单")85 publicString addForm( Model model )86 {87 model.addAttribute( "job", newScheduleJob() );88 return("task/addJob");89 }90

91

92 /**

93 * 添加定时任务记录94 *@paramjob 任务实体95 */

96 @RequestMapping( value = "/addJob", method =RequestMethod.POST )97 @Log( "新增操作员")98 public String addUser( @ModelAttribute("job") ScheduleJob job, RedirectAttributes ra, Model model,99 HttpServletRequest request )100 {101 SimpleDateFormat format = newSimpleDateFormat( AppConstant.DATE_FORMAT_YYYYMMDDHHMMSS );102 job.setCreateTime( format.format( newDate() ) );103 quartzJobService.inserJob( job );104 ra.addFlashAttribute( "actionResult", newSuccessActionResult() );105 return("redirect:/taskController/list.do");106 }107

108

109 /**

110 * 初始化修改表单111 *@paramjobId112 *@return跳转地址113 */

114 @RequestMapping( value = "/updateJob", method =RequestMethod.GET )115 @Log( "初始化修改表单")116 public String updateForm( @RequestParam("id") Integer jobId, Model model,117 HttpServletRequest request )118 {119 ScheduleJob job =quartzJobService.getScheduleJobById( jobId );120 model.addAttribute( "job", job );121 return("task/updateJob");122 }123

124

125 /**

126 * 修改定时任务记录信息127 *@paramjob 待修改的操作员实体128 *@parammodel 封装处理结果的实体129 *@paramrequest 请求对象130 *@return跳转地址131 */

132 @RequestMapping( value = "/updateJob", method =RequestMethod.POST )133 @Log( "修改定时任务")134 publicString updateJob( @ModelAttribute ScheduleJob job, RedirectAttributes ra, Model model,135 HttpServletRequest request )136 {137 SimpleDateFormat format = newSimpleDateFormat( AppConstant.DATE_FORMAT_YYYYMMDDHHMMSS );138 job.setUpdateTime( format.format( newDate() ) );139 quartzJobService.updateJob( job );140 ra.addFlashAttribute( "actionResult", newSuccessActionResult() );141 return("redirect:/taskController/list.do");142 }143

144

145 /**

146 * 删除一条定时任务记录信息147 *@return

148 */

149 @RequestMapping( value = "/deleteJob")150 @Log( "删除任务")151 public String deleteJob( @RequestParam("id") intjobId, RedirectAttributes ra )152 {153 quartzJobService.deleteJob( jobId );154 ra.addFlashAttribute( "actionResult", newSuccessActionResult() );155 return("redirect:/taskController/list.do");156 }157

158

159 /**

160 * 校验执行任务的表达式是否正确161 *@paramexpression162 *@return

163 */

164 @ResponseBody165 @RequestMapping( value = "/checkExp", produces = "application/json;charset=utf-8")166 @Log( "校验任务表达式")167 public ResponseEntity >checkExpression( String expression )168 {169 Map map = new HashMap();170 map.put( AppConstant.SYSTEM_JSON_CODE, AppConstant.SYSTEM_JSON_ERROR );171 if( jobMethod.checkCron( expression ) )172 {173 map.put( AppConstant.SYSTEM_JSON_CODE, AppConstant.SYSTEM_JSON_SUCCESS );174 }175 return(new ResponseEntity >( map, HttpStatus.OK ) );176 }177

178

179 /**

180 * 某个定时任务下的所有执行记录信息列表181 *@paramjobReq182 *@return

183 */

184 @RequestMapping( "/itemJob")185 @Log( "任务执行信息列表")186 public String executeJobList( @ModelAttribute("job") ScheduleJobReq jobReq, intjobId,187 Model model, HttpServletRequest request )188 {189 PaginationBean pb =quartzJobService.getJobItemsByPage( jobId, jobReq );190 try{191 pb.setUrl( HttpUtils.getRequestInfo( request, true) );192 } catch( Exception e ) {193 log.error( "get request url error", e );194 }195 model.addAttribute( "pb", pb );196 model.addAttribute( "jobId", jobId );197 return("task/taskItemList");198 }199 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值