|
|
@@ -6,18 +6,27 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
+
|
|
|
@Component
|
|
|
@Slf4j
|
|
|
public class UserCourseWatchCountTask {
|
|
|
@Autowired
|
|
|
private IFsUserCourseCountService userCourseCountService;
|
|
|
|
|
|
+ private final AtomicBoolean isRunning1 = new AtomicBoolean(false);
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 每15分钟执行一次
|
|
|
*/
|
|
|
- @Scheduled(cron = "0 */10 * * * ?") // 每10分钟执行一次
|
|
|
+ @Scheduled(cron = "0 */20 * * * ?") // 每10分钟执行一次
|
|
|
public void userCourseCountTask() {
|
|
|
+ // 尝试设置标志为 true,表示任务开始执行
|
|
|
+ if (!isRunning1.compareAndSet(false, true)) {
|
|
|
+ log.warn("会员看课统计任务执行 - 上一个任务尚未完成,跳过此次执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
try {
|
|
|
log.info("==============会员看课统计任务执行===============开始");
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
@@ -29,6 +38,9 @@ public class UserCourseWatchCountTask {
|
|
|
log.info("会员看课统计任务执行----------执行时长:{}", (endTime - startTime));
|
|
|
} catch (Exception e) {
|
|
|
log.error("会员看课统计任务执行----------定时任务执行失败", e);
|
|
|
+ } finally {
|
|
|
+ // 重置标志为 false,表示任务已完成
|
|
|
+ isRunning1.set(false);
|
|
|
}
|
|
|
|
|
|
}
|