Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemathinc
GitHub Repository: sagemathinc/cocalc
Path: blob/master/src/packages/backend/conat/persist.ts
1710 views
1
/*
2
3
To test having multiple persist servers at once in dev mode, start
4
up your dev server. Then do the following in nodejs to create an
5
additional persist server:
6
7
require("@cocalc/backend/conat/persist").initPersistServer()
8
9
*/
10
11
import "./index";
12
import betterSqlite3 from "better-sqlite3";
13
import { initContext } from "@cocalc/conat/persist/context";
14
import { compress, decompress } from "zstd-napi";
15
import { syncFiles } from "@cocalc/backend/data";
16
import ensureContainingDirectoryExists from "@cocalc/backend/misc/ensure-containing-directory-exists";
17
import { statSync, copyFileSync } from "node:fs";
18
19
initContext({
20
betterSqlite3,
21
compress,
22
decompress,
23
syncFiles,
24
ensureContainingDirectoryExists,
25
statSync,
26
copyFileSync,
27
});
28
29
export { pstream } from "@cocalc/conat/persist/storage";
30
import { server } from "@cocalc/conat/persist/server";
31
export { server };
32
import { conat } from "./conat";
33
34
const persistServers: any[] = [];
35
36
export function initPersistServer() {
37
const persistServer = server({
38
client: conat({ noCache: persistServers.length > 0 }),
39
});
40
persistServers.push(persistServer);
41
}
42
43
export function close() {
44
for (const persistServer of persistServers) {
45
persistServer.end(); // end is a bit more graceful
46
}
47
persistServers.length = 0;
48
}
49
50