package com.huixinpn.dionysus.scheduler; import com.huixinpn.dionysus.domain.chat.Room; import com.huixinpn.dionysus.repository.chat.RoomRepository; import com.huixinpn.dionysus.service.ActiveUserService; import com.huixinpn.dionysus.service.impl.UserState; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.HashMap; /** * Created by huanghao on 7/14/15. */ @Component public class RoomAttendeeCounter { @Autowired private ActiveUserService activeUserService; @Autowired private RoomRepository roomRepository; @Scheduled(fixedRate = 300000) public void countAttendee(){ for(String roomId : activeUserService.getActiveRooms()){ HashMap<String, UserState> users = activeUserService.getActiveUsers(roomId); Room room = roomRepository.findOne(new Long(roomId)); if(room != null){ room.setAttendeeCount(users.size()); roomRepository.saveAndFlush(room); } } } }