Skip to content

Commit 9b563a1

Browse files
committed
schedule prune
1 parent d30915b commit 9b563a1

8 files changed

+46
-18
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.bernd;
2+
3+
import com.bernd.model.StatusMap;
4+
import com.bernd.util.Sender;
5+
import org.springframework.scheduling.annotation.Scheduled;
6+
import org.springframework.stereotype.Component;
7+
8+
import java.util.List;
9+
import java.util.Map;
10+
11+
@Component
12+
public class CleanupController {
13+
14+
private final Sender sender;
15+
private final StatusMap statusMap;
16+
17+
CleanupController(Sender sender, StatusMap statusMap) {
18+
this.sender = sender;
19+
this.statusMap = statusMap;
20+
}
21+
22+
@Scheduled(fixedDelay = 40 * 1000)
23+
public void runScheduled() {
24+
Map<String, List<String>> updatedRooms = statusMap.prune();
25+
for (Map.Entry<String, List<String>> e : updatedRooms.entrySet()) {
26+
String room = e.getKey();
27+
List<String> users = e.getValue();
28+
sender.sendUsers(room, users);
29+
}
30+
}
31+
}

src/main/java/com/bernd/PageLoadConfig.java renamed to src/main/java/com/bernd/config/PageLoadConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.bernd;
1+
package com.bernd.config;
22

33
import jakarta.servlet.http.HttpServletRequest;
44
import org.springframework.context.annotation.Configuration;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.bernd.config;
2+
3+
import org.springframework.context.annotation.Configuration;
4+
import org.springframework.scheduling.annotation.EnableScheduling;
5+
6+
@Configuration
7+
@EnableScheduling
8+
public class SchedulingConfig {
9+
}

src/main/java/com/bernd/util/SecurityConfig.java renamed to src/main/java/com/bernd/config/SecurityConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
package com.bernd.util;
1+
package com.bernd.config;
22

3+
import com.bernd.util.AuthFilter;
34
import org.springframework.boot.autoconfigure.security.SecurityProperties;
45
import org.springframework.context.annotation.Bean;
56
import org.springframework.context.annotation.Configuration;

src/main/java/com/bernd/StompUser.java renamed to src/main/java/com/bernd/config/StompUser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.bernd;
1+
package com.bernd.config;
22

33
import java.security.Principal;
44

src/main/java/com/bernd/UserInterceptor.java renamed to src/main/java/com/bernd/config/UserInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.bernd;
1+
package com.bernd.config;
22

33
import com.auth0.jwt.JWT;
44
import com.auth0.jwt.JWTVerifier;

src/main/java/com/bernd/WebSocketConfig.java renamed to src/main/java/com/bernd/config/WebSocketConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.bernd;
1+
package com.bernd.config;
22

33
import org.springframework.context.annotation.Configuration;
44
import org.springframework.core.env.Environment;

src/main/java/com/bernd/util/RoomManager.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,12 @@
55
import org.springframework.stereotype.Component;
66

77
import java.util.List;
8-
import java.util.Map;
98

109
@Component
1110
public class RoomManager {
1211

13-
private static final long SCAN_TIMEOUT = 40 * 1000;
14-
1512
private final Sender sender;
1613
private final StatusMap statusMap;
17-
private long lastScan;
1814

1915
public RoomManager(Sender sender, StatusMap statusMap) {
2016
this.sender = sender;
@@ -23,15 +19,6 @@ public RoomManager(Sender sender, StatusMap statusMap) {
2319

2420
public void updateRooms(String user, String room) {
2521
updateStatus(user, room);
26-
if (lastScan + SCAN_TIMEOUT < System.currentTimeMillis()) {
27-
Map<String, List<String>> updatedRooms = statusMap.prune();
28-
for (Map.Entry<String, List<String>> e : updatedRooms.entrySet()) {
29-
String r = e.getKey();
30-
List<String> users = e.getValue();
31-
sender.sendUsers(r, users);
32-
}
33-
lastScan = System.currentTimeMillis();
34-
}
3522
}
3623

3724
public void updateStatus(String user, String room) {

0 commit comments

Comments
 (0)