Sitelet https://github.com/jackma8ge8/anyproxy/commit/d9f2e7528ccc9648ce85f82cbfd7aa782d03e777
Skip to content

Commit d9f2e75

Browse files
author
xiaofeng.mxf
committed
1 parent 65f5300 commit d9f2e75

5 files changed

Lines changed: 55 additions & 48 deletions

File tree

‎.gitignore‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@ test/report
3535
doc_compiled.md
3636
docs-md/cn/doc.md
3737
docs-md/en/doc.md
38-
docs/gitbook/gitbook-plugin-livereload/
38+
docs/gitbook/gitbook-plugin-livereload/
39+
node_modules

‎lib/recorder.js‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,22 @@ class Recorder extends events.EventEmitter {
8686
this.globalId = 1;
8787
this.cachePath = getCacheDir();
8888
this.db = new Datastore();
89-
this.db.persistence.setAutocompactionInterval(5001);
9089

9190
this.recordBodyMap = []; // id - body
9291
}
9392

93+
setDbAutoCompact() {
94+
this.db.persistence.setAutocompactionInterval(5001);
95+
}
96+
97+
stopDbAutoCompact() {
98+
try {
99+
this.db.persistence.stopAutocompaction();
100+
} catch (e) {
101+
logUtil.printLog(e, logUtil.T_ERR);
102+
}
103+
}
104+
94105
emitUpdate(id, info) {
95106
const self = this;
96107
if (info) {
@@ -333,6 +344,7 @@ class Recorder extends events.EventEmitter {
333344
}
334345

335346
clear() {
347+
logUtil.printLog('clearing cache file...');
336348
const self = this;
337349
proxyUtil.deleteFolderContentsRecursive(self.cachePath, true);
338350
}

‎lib/util.js‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,6 @@ function deleteFolderContentsRecursive(dirPath, ifClearFolderItself) {
216216
throw new Error('can_not_delete_this_dir');
217217
}
218218

219-
logUtil.info('==>>> clearing cache ', dirPath);
220-
221219
if (fs.existsSync(dirPath)) {
222220
fs.readdirSync(dirPath).forEach((file) => {
223221
const curPath = path.join(dirPath, file);

‎lib/webInterface.js‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -308,11 +308,15 @@ class webInterface extends events.EventEmitter {
308308
}
309309

310310
close() {
311-
this.server && this.server.close();
312-
this.wsServer && this.wsServer.closeAll();
313-
this.server = null;
314-
this.wsServer = null;
315-
this.proxyInstance = null;
311+
const self = this;
312+
return new Promise((resolve, reject) => {
313+
self.server && self.server.close();
314+
self.wsServer && self.wsServer.closeAll();
315+
self.server = null;
316+
self.wsServer = null;
317+
self.proxyInstance = null;
318+
resolve();
319+
});
316320
}
317321
}
318322

‎proxy.js‎

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ class ProxyCore extends events.EventEmitter {
248248
return self;
249249
}
250250

251-
252251
/**
253252
* close the proxy server
254253
*
@@ -326,54 +325,47 @@ class ProxyServer extends ProxyCore {
326325
}
327326

328327
start() {
328+
if (this.recorder) {
329+
this.recorder.setDbAutoCompact();
330+
}
331+
329332
// start web interface if neeeded
330333
if (this.proxyWebinterfaceConfig && this.proxyWebinterfaceConfig.enable) {
331334
this.webServerInstance = new WebInterface(this.proxyWebinterfaceConfig, this.recorder);
332335
// start web server
333-
this.webServerInstance.start().then(() => {
334-
// start proxy core
335-
super.start();
336-
})
337-
.catch((e) => {
338-
this.emit('error', e);
339-
});
336+
this.webServerInstance.start()
337+
// start proxy core
338+
.then(() => {
339+
super.start();
340+
})
341+
.catch((e) => {
342+
this.emit('error', e);
343+
});
340344
} else {
341345
super.start();
342346
}
343347
}
344348

345349
close() {
346-
return new Promise((resolve, reject) => {
347-
super.close()
348-
.then((error) => {
349-
if (error) {
350-
resolve(error);
351-
}
352-
});
353-
354-
if (this.recorder) {
355-
logUtil.printLog('clearing cache file...');
356-
this.recorder.clear();
357-
}
358-
const tmpWebServer = this.webServerInstance;
359-
this.recorder = null;
360-
this.webServerInstance = null;
361-
if (tmpWebServer) {
362-
logUtil.printLog('closing webserver...');
363-
tmpWebServer.close((error) => {
364-
if (error) {
365-
console.error(error);
366-
logUtil.printLog(`proxy web server close FAILED: ${error.message}`, logUtil.T_ERR);
367-
} else {
368-
logUtil.printLog(`proxy web server closed at ${this.proxyHostName} : ${this.webPort}`);
369-
}
370-
371-
resolve(error);
372-
})
373-
} else {
374-
resolve(null);
375-
}
376-
});
350+
const self = this;
351+
// release recorder
352+
if (self.recorder) {
353+
self.recorder.stopDbAutoCompact();
354+
self.recorder.clear();
355+
}
356+
self.recorder = null;
357+
358+
// close ProxyCore
359+
return super.close()
360+
// release webInterface
361+
.then(() => {
362+
if (self.webServerInstance) {
363+
const tmpWebServer = self.webServerInstance;
364+
self.webServerInstance = null;
365+
logUtil.printLog('closing webInterface...');
366+
return tmpWebServer.close();
367+
}
368+
});
377369
}
378370
}
379371

0 commit comments

Comments
 (0)