yyyang | 061761a | 2025-06-08 14:50:16 +0800 | [diff] [blame] | 1 | package com.pt.scheduler; |
| 2 | |
| 3 | import com.pt.service.UserService; |
| 4 | import org.slf4j.Logger; |
| 5 | import org.slf4j.LoggerFactory; |
| 6 | import org.springframework.beans.factory.annotation.Autowired; |
| 7 | import org.springframework.scheduling.annotation.Scheduled; |
| 8 | import org.springframework.stereotype.Component; |
| 9 | |
| 10 | /** |
| 11 | * 定时任务,用于定期更新用户的等级。 |
| 12 | */ |
| 13 | @Component |
| 14 | public class UserLevelUpdateScheduler { |
| 15 | |
| 16 | private static final Logger logger = LoggerFactory.getLogger(UserLevelUpdateScheduler.class); |
| 17 | |
| 18 | @Autowired |
| 19 | private UserService userService; |
| 20 | |
| 21 | /** |
| 22 | * 使用CRON表达式定义任务执行时间。 |
| 23 | * "0 0 * * * ?" 表示在每个小时的整点(例如 01:00, 02:00)执行。 |
| 24 | * 该任务会调用服务来更新所有用户的等级。 |
| 25 | */ |
| 26 | @Scheduled(cron = "0 0 * * * ?") |
| 27 | public void scheduleUserLevelUpdate() { |
| 28 | logger.info("开始执行定时任务:更新所有用户等级..."); |
| 29 | try { |
| 30 | userService.updateAllUsersLevel(); |
| 31 | logger.info("定时任务完成:所有用户等级已根据最新数据检查并更新。"); |
| 32 | } catch (Exception e) { |
| 33 | logger.error("执行用户等级更新定时任务时发生错误", e); |
| 34 | } |
| 35 | } |
| 36 | } |