之前在做oa项目的钉钉推送功能的时候,组长让我增加一个定时推送的功能,最好能实现用户在前端能自由修改时间。但是网上查了发现很多方法都需要重启项目才实现,后来从一篇博客上翻到说可以换一种思路,并不是去修改定时器时间,可以通过将之前的定时器停止注销,然后重新开启一个新的定时器来实现。
先上代码吧,基本上除了去掉了部分注入和方法参数的处理过程,整体逻辑都还是在的
/**
* 钉钉消息推送定时器Controller
*
* @author zjs
* @since 2019-03-21
*/
@Controller
@EnableScheduling
public class DingdingTimingController implements SchedulingConfigurer {
private final static Logger logger = LoggerFactory.getLogger(DingdingTimingController.class);
/**
* (安装维护)信息
*/
@Transactional(readOnly = false)
public String timerOfOptRepair(DingdingTimer dingdingTimer) {
try {
//处理变量参数
List<Object> result = dealResult();
//处理文本整体
String content = dealContent();
dingdingService.sendMsg();
logger.info("安装维护信息,钉钉定时推送成功);
return Constants.SYSDIC_COMMON_SUCCESS;
} catch (Exception e) {