diff options
| author | Christian Cleberg <[email protected]> | 2026-04-12 11:43:27 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-12 11:43:27 -0500 |
| commit | 4390684995c9933f213faec2cb20f39af6d506d2 (patch) | |
| tree | fac5252756c038e9fdb3444a1a4d68863e1683f3 /src/srht_contrib/jobs/poller.py | |
| parent | daaeba8be8df4d0876312e540bdd420e16ff724c (diff) | |
| download | hutch-stats-4390684995c9933f213faec2cb20f39af6d506d2.tar.gz hutch-stats-4390684995c9933f213faec2cb20f39af6d506d2.tar.bz2 hutch-stats-4390684995c9933f213faec2cb20f39af6d506d2.zip | |
add temporary self-graph indexing priority
Diffstat (limited to 'src/srht_contrib/jobs/poller.py')
| -rw-r--r-- | src/srht_contrib/jobs/poller.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/srht_contrib/jobs/poller.py b/src/srht_contrib/jobs/poller.py index 5e62b55..76d2fb0 100644 --- a/src/srht_contrib/jobs/poller.py +++ b/src/srht_contrib/jobs/poller.py @@ -65,6 +65,8 @@ class PollerService: ) ) .order_by( + TrackedActor.priority_boosted_at.is_not(None).desc(), + TrackedActor.priority_boosted_at.desc(), TrackedActor.next_poll_after.is_(None).desc(), TrackedActor.next_poll_after, TrackedActor.queued_for_discovery_at, @@ -90,7 +92,14 @@ class PollerService: logger.info("Pruned %s contribution events older than %s days", deleted, RETENTION_DAYS) return results - def track_actor_request(self, db: Session, actor: str, *, update_last_requested: bool = True) -> TrackedActor: + def track_actor_request( + self, + db: Session, + actor: str, + *, + update_last_requested: bool = True, + prioritize: bool = False, + ) -> TrackedActor: tracked_actor = db.scalar(select(TrackedActor).where(TrackedActor.actor == actor)) now = datetime.now(tz=UTC) if tracked_actor is None: @@ -111,6 +120,9 @@ class PollerService: tracked_actor.next_poll_after = now if update_last_requested: tracked_actor.last_requested_at = now + if prioritize: + tracked_actor.priority_boosted_at = now + tracked_actor.next_poll_after = now db.flush() return tracked_actor @@ -207,11 +219,13 @@ class PollerService: tracked_actor.discovery_state = "indexed" tracked_actor.last_polled_at = now tracked_actor.next_poll_after = now + timedelta(seconds=self.settings.indexed_actor_repoll_seconds) + tracked_actor.priority_boosted_at = None elif status == "error": tracked_actor.discovery_state = "error" tracked_actor.next_poll_after = now + timedelta( seconds=self.settings.discovery_error_backoff_seconds * max(tracked_actor.poll_attempts, 1) ) + tracked_actor.priority_boosted_at = None db.add(tracked_actor) db.flush() |
