From the slow traces of 2026-10-13: the directory checked a round's 25 feeds one after another, so two libsyn feeds timing out at 30 s made a round 70 s; a forced scan looked up 62 site icons in turn, 22 s of 62; mjg59.dreamwidth.org takes the connection and never answers, so it ran the full 30 s in every scan it was in; and since #225 strips queries, every YouTube fetch span read the same address, outside any span naming its feed. The directory now checks five at a time (SQLite stays on one connection, so its writes queue). A forced scan looks up the icon in the fetch-ahead task, which already runs six deep, and hands it to scan_one with the body. Both feed clients give up after 15 s of silence (no successful fetch took over 8 s in a day of traces); FEED_TIMEOUT stays 30 s for a feed still sending. The directory's client had no connect timeout; it has ipx's 10 s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
36 lines
792 B
TOML
36 lines
792 B
TOML
[package]
|
|
name = "ipx-directory"
|
|
version = "1.1.1-dev"
|
|
edition.workspace = true
|
|
|
|
[[bin]]
|
|
name = "ipx-directory"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
ammonia.workspace = true
|
|
anyhow.workspace = true
|
|
axum.workspace = true
|
|
clap.workspace = true
|
|
futures-util.workspace = true
|
|
ipx-feed.workspace = true
|
|
opentelemetry.workspace = true
|
|
opentelemetry-otlp.workspace = true
|
|
opentelemetry_sdk.workspace = true
|
|
mimalloc.workspace = true
|
|
percent-encoding.workspace = true
|
|
reqwest.workspace = true
|
|
sea-orm.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
sha2.workspace = true
|
|
tokio.workspace = true
|
|
toml.workspace = true
|
|
tracing.workspace = true
|
|
tracing-opentelemetry.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
url.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tower.workspace = true
|