From 2e5e70d8da323f8e8709cb1d3d4024d0a7faba24 Mon Sep 17 00:00:00 2001 From: updraft0 Date: Fri, 28 Jun 2024 17:08:04 +0100 Subject: [PATCH] refactor: use .repeat() instead of .schedule() consistently --- .../server/map/MapPermissionTracker.scala | 2 +- .../controltower/server/map/MapReactive.scala | 2 +- .../updraft0/controltower/server/map/MapSession.scala | 2 +- .../server/tracking/CharacterAffiliationTracker.scala | 11 +++++------ .../server/tracking/CharacterAuthTracker.scala | 3 ++- .../server/tracking/LocationTracker.scala | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/server/src/main/scala/org/updraft0/controltower/server/map/MapPermissionTracker.scala b/server/src/main/scala/org/updraft0/controltower/server/map/MapPermissionTracker.scala index 60be6df..0bafd4e 100644 --- a/server/src/main/scala/org/updraft0/controltower/server/map/MapPermissionTracker.scala +++ b/server/src/main/scala/org/updraft0/controltower/server/map/MapPermissionTracker.scala @@ -42,7 +42,7 @@ object MapPermissionTracker: // reload permissions every interval _ <- inHub .publish(InternalMessage.RefreshAll) - .schedule(Schedule.once.andThen(Schedule.fixed(PermissionReloadInterval))) + .repeat(Schedule.fixed(PermissionReloadInterval)) .forkScoped // process messages inQ <- inHub.subscribe diff --git a/server/src/main/scala/org/updraft0/controltower/server/map/MapReactive.scala b/server/src/main/scala/org/updraft0/controltower/server/map/MapReactive.scala index 2204f93..b0cf380 100644 --- a/server/src/main/scala/org/updraft0/controltower/server/map/MapReactive.scala +++ b/server/src/main/scala/org/updraft0/controltower/server/map/MapReactive.scala @@ -993,7 +993,7 @@ object MapEntity extends ReactiveEntity[MapEnv, MapId, MapState, Identified[MapR state, Chunk(removeConnections(deletedConnections)) ++ systemIdsToRefresh.map(sId => reloadSystemSnapshot(mapId, sId)) - ).when(deletedConnections.nonEmpty).someOrElse(state -> Chunk.empty) + ).when(expiredConnections.nonEmpty).someOrElse(state -> Chunk.empty) yield res private inline def loadSingleSystem(mapId: MapId, systemId: SystemId) = diff --git a/server/src/main/scala/org/updraft0/controltower/server/map/MapSession.scala b/server/src/main/scala/org/updraft0/controltower/server/map/MapSession.scala index cce34be..e0443d1 100644 --- a/server/src/main/scala/org/updraft0/controltower/server/map/MapSession.scala +++ b/server/src/main/scala/org/updraft0/controltower/server/map/MapSession.scala @@ -125,7 +125,7 @@ object MapSession: _ <- chan.send(ChannelEvent.Read(WebSocketFrame.Ping)).schedule(Schedule.fixed(PingInterval)).ignore.forkDaemon // listen for server status _ <- sendServerStatus(ourQ) - .schedule(Schedule.once.andThen(Schedule.fixed(ServerStatusInterval))) + .repeat(Schedule.fixed(ServerStatusInterval)) .ignore .forkDaemon // join on the remaining loops diff --git a/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAffiliationTracker.scala b/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAffiliationTracker.scala index a50b866..68566d6 100644 --- a/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAffiliationTracker.scala +++ b/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAffiliationTracker.scala @@ -17,12 +17,11 @@ object CharacterAffiliationTracker: private val EsiMaxCharacterPerBatch = 64 def apply(): ZIO[Scope & Env, Nothing, Unit] = - (refreshAll - .tapError(ex => ZIO.logErrorCause("Failed to refresh character affiliations", Cause.fail(ex))) @@ - Log.BackgroundOperation("affiliationTracker")).ignoreLogged - .repeat(Schedule.duration(5.seconds).andThen(Schedule.fixed(PollInterval))) - .forkScoped - .unit + val refresh = refreshAll + .tapError(ex => ZIO.logErrorCause("Failed to refresh character affiliations", Cause.fail(ex))) + .ignoreLogged @@ Log.BackgroundOperation("affiliationTracker") + + refresh.delay(5.seconds).forkScoped *> refresh.repeat(Schedule.fixed(PollInterval)).forkScoped.unit private def refreshAll: ZIO[Env, Throwable, Unit] = ZIO diff --git a/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAuthTracker.scala b/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAuthTracker.scala index e8b5353..768f133 100644 --- a/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAuthTracker.scala +++ b/server/src/main/scala/org/updraft0/controltower/server/tracking/CharacterAuthTracker.scala @@ -56,8 +56,9 @@ object CharacterAuthTracker: // start the refresh timer _ <- refreshPending(esi, state, hub).repeat(Schedule.fixed(PollInterval)).forkScoped // start the snapshot timer + _ <- sendSnapshot(state, hub).delay(10.seconds).forkScoped _ <- sendSnapshot(state, hub) - .repeat(Schedule.duration(10.seconds).andThen(Schedule.fixed(SnapshotInterval))) + .repeat(Schedule.fixed(SnapshotInterval)) .forkScoped yield new CharacterAuthTracker: override def newLogin(auth: CharacterAuth): UIO[Unit] = diff --git a/server/src/main/scala/org/updraft0/controltower/server/tracking/LocationTracker.scala b/server/src/main/scala/org/updraft0/controltower/server/tracking/LocationTracker.scala index 65b4408..2cea771 100644 --- a/server/src/main/scala/org/updraft0/controltower/server/tracking/LocationTracker.scala +++ b/server/src/main/scala/org/updraft0/controltower/server/tracking/LocationTracker.scala @@ -84,7 +84,7 @@ object LocationTracker: _ <- refreshLocations(esi, state, responseHub, c.maxParallel) .timeout(c.interval) .ignoreLogged - .schedule(Schedule.fixed(c.interval)) + .repeat(Schedule.fixed(c.interval)) .forkScoped yield new LocationTracker: override def inbound: Enqueue[LocationTrackingRequest] = inQ