pub(crate) async fn run(
config: Tier1Config,
pool: PgPool,
) -> Result<(), Box<dyn Error + Send + Sync>>Expand description
Runs the Tier 1 discovery sweep loop.
Spawns three concurrent polling timers โ one per data source โ and runs
until the task is cancelled. Each timer fires independently at the interval
specified in config. When a timer fires, the corresponding fetcher runs
to completion; errors are logged but never propagated, so a transient
failure in one source does not block the others.
A shared reqwest::Client is used across all fetchers to benefit from
connection pooling and keep-alive.
ยงErrors
Returns an error only if all three fetchers encounter a non-retryable condition simultaneously (currently unreachable โ the function runs indefinitely until cancelled).