Serve stale virtual members while they refresh (#167)
Virtual merges expire after 60s and the next request blocks on every member. One slow member (a large github_rpm remote) makes the re-merge outlast dnf's 30s timeout. - add `serve_stale` to remotes (model, v2 API, migration 0008, UI, TUI), default false - serve a flagged member's last good fetch to rpm/deb/alpine merges at once - refresh it in the background, single-flighted, detached from the request - block on the member again once its copy is over an hour old, or the flag is off - prune copies with their merge cache; drop refreshes for evicted entries Reviewed-on: #167 Co-authored-by: unkin-agent <unkin-agent@unkin.net> Co-committed-by: unkin-agent <unkin-agent@unkin.net>
This commit was merged in pull request #167.
This commit is contained in:
@@ -17,6 +17,7 @@ export interface Remote {
|
||||
quarantine_enabled: boolean;
|
||||
quarantine_days: number;
|
||||
stale_on_error: boolean;
|
||||
serve_stale: boolean;
|
||||
releases_remote: string;
|
||||
managed_by: string;
|
||||
created_at: string;
|
||||
|
||||
@@ -50,6 +50,8 @@ export function RemoteDetail() {
|
||||
<dd>{remote.check_mutable ? 'enabled' : 'disabled'}</dd>
|
||||
<dt>Stale on Error</dt>
|
||||
<dd>{remote.stale_on_error ? 'enabled' : 'disabled'}</dd>
|
||||
<dt>Serve Stale</dt>
|
||||
<dd>{remote.serve_stale ? 'enabled' : 'disabled'}</dd>
|
||||
{remote.releases_remote && (
|
||||
<>
|
||||
<dt>Releases Remote</dt>
|
||||
|
||||
Reference in New Issue
Block a user