Limit the app container to 1 CPU and 2 GB, and stop stale caches
CI / check (push) Canceled after 0s
CI / check (push) Canceled after 0s
The app container is now created with --cpus 1 --memory 2048m: the heavy work happens in the computers' own containers, so the orchestrator does not need more. Both are installer flags (--cpus, --memory), kept in install.conf, and part of the idempotency check, so an existing install picks them up on its next update. The env and app-setting caches lived in module variables, and bunext bundles pages and API routes separately. A save cleared only its own copy, so a saved provider key never reached the page that lists models until the process restarted. They now share one slot per name on globalThis, behind a symbol from the global registry, with the pattern extracted into a tested helper.
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import globalCache from "./global-cache";
|
||||
|
||||
describe("globalCache", () => {
|
||||
test("keeps a value and clears it", () => {
|
||||
const cache = globalCache<number>({ name: "cobble.grabAllEnvs.cache" });
|
||||
|
||||
cache.clear();
|
||||
expect(cache.get()).toBeUndefined();
|
||||
|
||||
cache.set(7);
|
||||
expect(cache.get()).toBe(7);
|
||||
|
||||
cache.clear();
|
||||
expect(cache.get()).toBeUndefined();
|
||||
});
|
||||
|
||||
test("two slots with one name share a value, as two bundles would", () => {
|
||||
const page_bundle = globalCache<string>({
|
||||
name: "cobble.grabAppSettings.cache",
|
||||
});
|
||||
const api_bundle = globalCache<string>({
|
||||
name: "cobble.grabAppSettings.cache",
|
||||
});
|
||||
|
||||
page_bundle.clear();
|
||||
page_bundle.set("stale");
|
||||
|
||||
// The API sees what the page wrote, so a save there clears it too.
|
||||
expect(api_bundle.get()).toBe("stale");
|
||||
|
||||
api_bundle.clear();
|
||||
expect(page_bundle.get()).toBeUndefined();
|
||||
});
|
||||
|
||||
test("different names never share a slot", () => {
|
||||
const envs = globalCache<string>({ name: "cobble.grabAllEnvs.cache" });
|
||||
const settings = globalCache<string>({
|
||||
name: "cobble.grabAppSettings.cache",
|
||||
});
|
||||
|
||||
envs.clear();
|
||||
settings.clear();
|
||||
|
||||
envs.set("a");
|
||||
settings.set("b");
|
||||
|
||||
expect(envs.get()).toBe("a");
|
||||
expect(settings.get()).toBe("b");
|
||||
|
||||
envs.clear();
|
||||
settings.clear();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user