diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-09 13:53:09 -0400 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-09 13:53:09 -0400 |
commit | 3dfd1de5f4d0c72dfbc9b981b8a27f98bbe7dbf2 (patch) | |
tree | 934630f6b27beeb4b032ba892c180cc1d4915c27 /src/server/GarbageCollector.ts | |
parent | 4944abd854e672f62926089f3619b92dcaf3b2ca (diff) |
Added Search to GC and cleaned up some stuff
Diffstat (limited to 'src/server/GarbageCollector.ts')
-rw-r--r-- | src/server/GarbageCollector.ts | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/GarbageCollector.ts b/src/server/GarbageCollector.ts index 3c32a94c2..268239481 100644 --- a/src/server/GarbageCollector.ts +++ b/src/server/GarbageCollector.ts @@ -2,6 +2,7 @@ import { Database } from './database'; import * as path from 'path'; import * as fs from 'fs'; +import { Search } from './Search'; function addDoc(doc: any, ids: string[], files: { [name: string]: string[] }) { for (const key in doc) { @@ -60,7 +61,7 @@ function addDoc(doc: any, ids: string[], files: { [name: string]: string[] }) { async function GarbageCollect() { // await new Promise(res => setTimeout(res, 3000)); - const cursor = await Database.Instance.query({}, 'users'); + const cursor = await Database.Instance.query({}, { userDocumentId: 1 }, 'users'); const users = await cursor.toArray(); const ids: string[] = users.map(user => user.userDocumentId); const visited = new Set<string>(); @@ -90,12 +91,15 @@ async function GarbageCollect() { cursor.close(); - const toDeleteCursor = await Database.Instance.query({ _id: { $nin: Array.from(visited) } }); - const toDelete = (await toDeleteCursor.toArray()).map(doc => doc._id); + const toDeleteCursor = await Database.Instance.query({ _id: { $nin: Array.from(visited) } }, { _id: 1 }); + const toDelete: string[] = (await toDeleteCursor.toArray()).map(doc => doc._id); toDeleteCursor.close(); const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments"); console.log(`${result.deletedCount} documents deleted`); + await Search.Instance.deleteDocuments(toDelete); + console.log("Cleared search documents"); + const folder = "./src/server/public/files/"; fs.readdir(folder, (_, fileList) => { const filesToDelete = fileList.filter(file => { |