@Scheduled
是 Spring Framework 中的一个注解,用于安排方法定期执行或在特定时间点执行。
使用 @Scheduled
注解的方法需要满足以下条件:
- 该方法必须是公共的(public)。
- 该方法不应该返回任何值,或者返回一个可以忽略的值。
- 该方法不应该抛出任何异常。
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
@RestController
@RequestMapping("/administrator")
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
//@Component
public class UserConlleter {@Resourceprivate Userservise userservise;@Resourceprivate UserMapper userMapper;@Resourceprivate JwtProperTies jwtProperTies;@Resourceprivate HttpServletRequest httpServletRequest;//生成随机邀请码用于注册@PostMapping("Invitationcode/{id}")private BaseResult<String> getCode(@PathVariable Integer id){String code = CodeUtil.toSerialCode(id);//设置权限码Administrator administrator = userMapper.selectById(id);administrator.setCode(code);userservise.updateById(administrator);return BaseResult.ok("请求成功",code);}//30分钟刷新校验码@Scheduled(fixedRate = 300000)@GetMapping("updateCode")private void updateCode(){List<Administrator> administratorList = userservise.list();for (Administrator administrator:administratorList){//获取codeBaseResult<String> code = getCode(administrator.getAid());//设置校验码administrator.setCode(code.getData());//更新userservise.updateById(administrator);}}
}