Skip to content

Commit 62c2f47

Browse files
committed
🐛 修复后台脚本内存溢出问题 #71
1 parent e00669a commit 62c2f47

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

src/runtime/content/sandbox.ts

+5-11
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,6 @@ export default class SandboxRuntime {
5555

5656
// 直接运行脚本
5757
start(script: ScriptRunResouce): Promise<boolean> {
58-
// 存在先将资源释放
59-
if (this.execScripts.has(script.id)) {
60-
this.stop(script.id);
61-
}
6258
return this.execScript(script);
6359
}
6460

@@ -112,13 +108,13 @@ export default class SandboxRuntime {
112108
// 执行脚本
113109
execScript(script: ScriptRunResouce) {
114110
const logger = this.logger.with({ scriptId: script.id, name: script.name });
115-
let exec: ExecScript;
116111
if (this.execScripts.has(script.id)) {
117-
exec = this.execScripts.get(script.id)!;
118-
} else {
119-
exec = new ExecScript(script, this.message);
120-
this.execScripts.set(script.id, exec);
112+
// 释放掉资源
113+
// 暂未实现执行完成后立马释放,会在下一次执行时释放
114+
this.stop(script.id);
121115
}
116+
const exec = new ExecScript(script, this.message);
117+
this.execScripts.set(script.id, exec);
122118
this.message.send("scriptRunStatus", [
123119
exec.scriptRes.id,
124120
SCRIPT_RUN_STATUS_RUNNING,
@@ -161,7 +157,6 @@ export default class SandboxRuntime {
161157
throw new Error("错误的crontab表达式");
162158
}
163159
let flag = false;
164-
const exec = new ExecScript(script, this.message);
165160
const cronJobList: Array<CronJob> = [];
166161
script.metadata.crontab.forEach((val) => {
167162
let oncePos = 0;
@@ -196,7 +191,6 @@ export default class SandboxRuntime {
196191
crontab.stop();
197192
});
198193
} else {
199-
this.execScripts.set(script.id, exec);
200194
this.cronJob.set(script.id, cronJobList);
201195
}
202196
return Promise.resolve(!flag);

0 commit comments

Comments
 (0)