Path: blob/master/src/packages/backend/conat/persist.ts
1447 views
/*12To test having multiple persist servers at once in dev mode, start3up your dev server. Then do the following in nodejs to create an4additional persist server:56require("@cocalc/backend/conat/persist").initPersistServer()78*/910import "./index";11import betterSqlite3 from "better-sqlite3";12import { initContext } from "@cocalc/conat/persist/context";13import { compress, decompress } from "zstd-napi";14import { syncFiles } from "@cocalc/backend/data";15import ensureContainingDirectoryExists from "@cocalc/backend/misc/ensure-containing-directory-exists";1617initContext({18betterSqlite3,19compress,20decompress,21syncFiles,22ensureContainingDirectoryExists,23});2425export { pstream } from "@cocalc/conat/persist/storage";26import { server } from "@cocalc/conat/persist/server";27export { server };28import { conat } from "./conat";2930const persistServers: any[] = [];3132export function initPersistServer() {33const persistServer = server({34client: conat({ noCache: persistServers.length > 0 }),35});36persistServers.push(persistServer);37}3839export function close() {40for (const persistServer of persistServers) {41persistServer.end(); // end is a bit more graceful42}43persistServers.length = 0;44}454647