|
42 | 42 | import org.openqa.selenium.PersistentCapabilities; |
43 | 43 | import org.openqa.selenium.RetrySessionRequestException; |
44 | 44 | import org.openqa.selenium.WebDriverException; |
45 | | -import org.openqa.selenium.concurrent.Regularly; |
46 | 45 | import org.openqa.selenium.events.EventBus; |
47 | 46 | import org.openqa.selenium.grid.data.Availability; |
48 | 47 | import org.openqa.selenium.grid.data.CreateSessionRequest; |
|
96 | 95 | import java.util.Set; |
97 | 96 | import java.util.UUID; |
98 | 97 | import java.util.concurrent.ExecutionException; |
| 98 | +import java.util.concurrent.Executors; |
| 99 | +import java.util.concurrent.ScheduledExecutorService; |
| 100 | +import java.util.concurrent.TimeUnit; |
99 | 101 | import java.util.concurrent.atomic.AtomicInteger; |
100 | 102 | import java.util.logging.Logger; |
101 | 103 | import java.util.stream.Collectors; |
@@ -169,13 +171,41 @@ private LocalNode( |
169 | 171 | }) |
170 | 172 | .build(); |
171 | 173 |
|
172 | | - Regularly sessionCleanup = new Regularly("Session Cleanup Node: " + externalUri); |
173 | | - sessionCleanup.submit(currentSessions::cleanUp, Duration.ofSeconds(30), Duration.ofSeconds(30)); |
174 | | - Regularly tmpFileCleanup = new Regularly("TempFile Cleanup Node: " + externalUri); |
175 | | - tmpFileCleanup.submit(tempFileSystems::cleanUp, Duration.ofSeconds(30), Duration.ofSeconds(30)); |
176 | | - Regularly regularHeartBeat = new Regularly("Heartbeat Node: " + externalUri); |
177 | | - regularHeartBeat.submit(() -> bus.fire(new NodeHeartBeatEvent(getStatus())), heartbeatPeriod, |
178 | | - heartbeatPeriod); |
| 174 | + ScheduledExecutorService sessionCleanupNodeService = |
| 175 | + Executors.newSingleThreadScheduledExecutor( |
| 176 | + r -> { |
| 177 | + Thread thread = new Thread(r); |
| 178 | + thread.setDaemon(true); |
| 179 | + thread.setName("Session Cleanup Node " + externalUri); |
| 180 | + return thread; |
| 181 | + }); |
| 182 | + sessionCleanupNodeService.scheduleAtFixedRate( |
| 183 | + currentSessions::cleanUp, 30, 30, TimeUnit.SECONDS); |
| 184 | + |
| 185 | + ScheduledExecutorService tempFileCleanupNodeService = |
| 186 | + Executors.newSingleThreadScheduledExecutor( |
| 187 | + r -> { |
| 188 | + Thread thread = new Thread(r); |
| 189 | + thread.setDaemon(true); |
| 190 | + thread.setName("TempFile Cleanup Node " + externalUri); |
| 191 | + return thread; |
| 192 | + }); |
| 193 | + tempFileCleanupNodeService.scheduleAtFixedRate( |
| 194 | + tempFileSystems::cleanUp, 30, 30, TimeUnit.SECONDS); |
| 195 | + |
| 196 | + ScheduledExecutorService heartbeatNodeService = |
| 197 | + Executors.newSingleThreadScheduledExecutor( |
| 198 | + r -> { |
| 199 | + Thread thread = new Thread(r); |
| 200 | + thread.setDaemon(true); |
| 201 | + thread.setName("TempFile Cleanup Node " + externalUri); |
| 202 | + return thread; |
| 203 | + }); |
| 204 | + heartbeatNodeService.scheduleAtFixedRate( |
| 205 | + () -> bus.fire(new NodeHeartBeatEvent(getStatus())), |
| 206 | + heartbeatPeriod.getSeconds(), |
| 207 | + heartbeatPeriod.getSeconds(), |
| 208 | + TimeUnit.SECONDS); |
179 | 209 |
|
180 | 210 | bus.addListener(SessionClosedEvent.listener(id -> { |
181 | 211 | // Listen to session terminated events so we know when to fire the NodeDrainComplete event |
|
0 commit comments