df5423511f
- Socket.io Redis adapter pro sdílený stav přes repliky - graceful shutdown serveru - WATCH/MULTI v updateData pro race-condition-safe aktualizace - lease mechanismus pro push reminder (zabrání duplicitnímu odesílání) - k8s/ manifesty pro testovací kind cluster - Dockerfile: opraven EXPOSE port na 3001 - .gitignore: ignorovány Claude pracovní soubory
30 lines
973 B
TypeScript
30 lines
973 B
TypeScript
/**
|
|
* Interface pro úložiště dat.
|
|
*/
|
|
export interface StorageInterface {
|
|
|
|
initialize?(): Promise<void>;
|
|
|
|
hasData(key: string): Promise<boolean>;
|
|
|
|
getData<Type>(key: string): Promise<Type | undefined>;
|
|
|
|
setData<Type>(key: string, data: Type): Promise<void>;
|
|
|
|
/**
|
|
* Vrátí seznam všech klíčů, případně jen těch obsahujících předaný podřetězec.
|
|
* @param contains volitelný podřetězec, který musí klíč obsahovat (např. '_extra')
|
|
*/
|
|
listKeys(contains?: string): Promise<string[]>;
|
|
|
|
/**
|
|
* Atomicky načte, zmutuje a uloží data pod daným klíčem.
|
|
* V Redis implementaci používá WATCH/MULTI/EXEC retry loop.
|
|
* Vrátí výslednou hodnotu po aplikaci mutátoru.
|
|
*/
|
|
updateData<Type>(key: string, mutator: (current: Type | undefined) => Type): Promise<Type>;
|
|
|
|
/** Ověří dostupnost úložiště. Vrátí false pokud není dostupné. */
|
|
healthCheck?(): Promise<boolean>;
|
|
}
|