package io.wdd.rpc.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.wdd.common.beans.response.R; import io.wdd.rpc.scheduler.beans.ScriptSchedulerVO; import io.wdd.rpc.scheduler.service.QuartzSchedulerService; import org.quartz.Trigger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @RestController @Api(value = "定时任务控制中心的Controller") @RequestMapping(value = "/octopus/server/scheduler") public class SchedulerController { @Autowired QuartzSchedulerService octopusQuartzService; /** * -------------------------------------------------------------- * 页面定时任务部分 * 应该只有脚本功能才可以定时,目前一阶段的功能 */ @ApiOperation(value = "新增一个定时脚本任务") @PostMapping(value = "/script/create") public R> createScriptScheduler( @ApiParam(name = "scheduleScript") @RequestBody() ScriptSchedulerVO scriptSchedulerVO ) { List resultList = octopusQuartzService.createScriptScheduledMission(scriptSchedulerVO); return R.ok(resultList); } /** * -------------------------------------------------------------- * 普通的定时任务查询功能 * */ @ApiOperation(value = "查询所有mission") @GetMapping(value = "/queryAllMission") public R>> queryAllQuartzMission() { return R.ok(octopusQuartzService.queryAllMission()); } @ApiOperation(value = "查询所有运行mission") @PostMapping(value = "/queryRunMission") public R>> queryRunQuartzMission() { return R.ok(octopusQuartzService.queryRunMission()); } @ApiOperation(value = "删除一个mission") @PostMapping(value = "/deleteMission/") public R deleteMission( @ApiParam(name = "missionName") @RequestParam("missionName") String missionName ) { boolean deleteMission = octopusQuartzService.deleteMission( missionName, missionName ); String result = String.format( "删除任务[ %s ]结果为 [ %s ]", missionName, deleteMission ); if (deleteMission) { return R.ok(result); } else { return R.failed(result); } } @ApiOperation(value = "修改mission的cron时间") @PostMapping(value = "/updateMission/{missionName}") public void deleteMission( @ApiParam(name = "missionName") @RequestParam("missionName") String missionName, @ApiParam(name = "missionCronTime") @RequestParam("missionCronTime") String missionCronTime ) { octopusQuartzService.updateMission( missionName, missionName, missionCronTime ); } @ApiOperation(value = "查询所有的触发器Trigger") @GetMapping(value = "/allTriggers") public R> queryAllTriggers() { return R.ok( octopusQuartzService.queryAllTrigger() ); } }