35 lines
987 B
Java
35 lines
987 B
Java
package com.youlai.boot.system.handler;
|
||
|
||
|
||
import com.youlai.boot.system.service.UserOnlineService;
|
||
import lombok.RequiredArgsConstructor;
|
||
import lombok.extern.slf4j.Slf4j;
|
||
import org.springframework.messaging.simp.SimpMessagingTemplate;
|
||
import org.springframework.scheduling.annotation.Scheduled;
|
||
import org.springframework.stereotype.Component;
|
||
|
||
/**
|
||
* 在线用户定时任务
|
||
*
|
||
* @since 2024/10/7
|
||
*
|
||
*/
|
||
@Component
|
||
@Slf4j
|
||
@RequiredArgsConstructor
|
||
public class OnlineUserJobHandler {
|
||
|
||
private final UserOnlineService userOnlineService;
|
||
private final SimpMessagingTemplate messagingTemplate;
|
||
|
||
// 每3分钟统计一次在线用户数,减少服务器压力
|
||
@Scheduled(cron = "0 */3 * * * ?")
|
||
public void execute() {
|
||
log.info("定时任务:统计在线用户数");
|
||
// 推送在线用户数量到新主题
|
||
int count = userOnlineService.getOnlineUserCount();
|
||
messagingTemplate.convertAndSend("/topic/online-count", count);
|
||
}
|
||
|
||
}
|