feat(velocity): felis-api 调用改走有界线程池、定时任务防重叠,超时可配置,幂等 GET 带抖动重试一次

This commit is contained in:
Lemon-miaow committed 2026-09-26 00:03:19 +08:00
1 parent 001f060027
commit fcf5c305ea
16 files changed
+872 -37

No files matched your search

+25 -1
View File
@@ -10,7 +10,11 @@
# velocity/test. They check what "compiles" cannot: the felis:control codec
# round-trips every frame kind (spec §12), no server name can re-aim a
# felis-api request path, only the lobby and the login gate may drive
# felis:control (and each only with its own frames), the link-status outage
# felis:control (and each only with its own frames), a GET is retried once
# after a dropped reply or a 502/503/504 and a POST never, the request timeout
# cuts a slow call off, felis-link.properties timeouts are validated, the
# felis-api call pool refuses instead of growing and a repeating task never
# overlaps itself, the link-status outage
# fallback fails closed outside its window, a proxy restarted during an API
# outage routes on the last saved server list (and only until a fetch
# succeeds), /invite prompts cannot double-fire
@@ -71,6 +75,18 @@ javac -d "$work/shared-classes" \
plugins/shared/test/best/lolicon/felis/link/FelisApiClientTest.java
java -cp "$work/shared-classes" best.lolicon.felis.link.FelisApiClientTest
echo "==> FelisApiClientRetryTest (which failures are retried, request timeout, shared)"
javac -d "$work/shared-classes" \
plugins/shared/src/main/java/best/lolicon/felis/link/*.java \
plugins/shared/test/best/lolicon/felis/link/FelisApiClientRetryTest.java
java -cp "$work/shared-classes" best.lolicon.felis.link.FelisApiClientRetryTest
echo "==> LinkConfigLoaderTest (env/file precedence, template, timeouts, shared)"
javac -d "$work/shared-classes" \
plugins/shared/src/main/java/best/lolicon/felis/link/*.java \
plugins/shared/test/best/lolicon/felis/link/LinkConfigLoaderTest.java
java -cp "$work/shared-classes" best.lolicon.felis.link.LinkConfigLoaderTest
echo "==> ControlPolicyTest (who may send what on felis:control, velocity)"
mkdir -p "$work/policy-classes"
javac -d "$work/policy-classes" \
@@ -93,6 +109,14 @@ javac -d "$work/list-classes" \
plugins/velocity/test/best/lolicon/felis/velocity/ServerListSourceTest.java
java -cp "$work/list-classes" best.lolicon.felis.velocity.ServerListSourceTest
echo "==> ApiPoolTest (bounded felis-api pool, non-overlapping repeats, velocity)"
mkdir -p "$work/pool-classes"
javac -d "$work/pool-classes" \
plugins/velocity/src/main/java/best/lolicon/felis/velocity/BoundedExecutor.java \
plugins/velocity/src/main/java/best/lolicon/felis/velocity/SkipIfRunning.java \
plugins/velocity/test/best/lolicon/felis/velocity/ApiPoolTest.java
java -cp "$work/pool-classes" best.lolicon.felis.velocity.ApiPoolTest
echo "==> InviteBookTest (/invite prompt store, velocity)"
mkdir -p "$work/velocity-classes"
javac -d "$work/velocity-classes" \