Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemathinc
GitHub Repository: sagemathinc/cocalc
Path: blob/master/src/packages/backend/conat/persist.ts
1447 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
18
initContext({
19
betterSqlite3,
20
compress,
21
decompress,
22
syncFiles,
23
ensureContainingDirectoryExists,
24
});
25
26
export { pstream } from "@cocalc/conat/persist/storage";
27
import { server } from "@cocalc/conat/persist/server";
28
export { server };
29
import { conat } from "./conat";
30
31
const persistServers: any[] = [];
32
33
export function initPersistServer() {
34
const persistServer = server({
35
client: conat({ noCache: persistServers.length > 0 }),
36
});
37
persistServers.push(persistServer);
38
}
39
40
export function close() {
41
for (const persistServer of persistServers) {
42
persistServer.end(); // end is a bit more graceful
43
}
44
persistServers.length = 0;
45
}
46
47