【问题标题】:How to clear memory after every schedule job done in nodejs?在nodejs中完成每个计划作业后如何清除内存?
【发布时间】:2019-11-07 07:37:21
【问题描述】:

我正在使用 node-crone 来安排我的工作。但我想在完成每项工作后清除内存。那我该怎么做呢?

【问题讨论】:

  • js中没有内存管理,你可以确保你创建的对象在代码的任何地方都没有被使用,然后垃圾收集器会释放它们。
  • 它会自动发生。一旦你的工作完成,进程将被终止,垃圾收集器会处理它。

标签: javascript node.js cron


【解决方案1】:

如果您在 cron、函数或块范围内正确声明变量(例如 let),那么这些变量只有在该范围处于活动状态(即内存已清除)时才会存在。

例如:

var cron = require('node-cron');

cron.schedule('* * * * *', function(){
  // y variable will be local to your function
  let y = 2;
});

然后,每次函数运行结束时,Javascript 垃圾回收器都会清理这些变量,因为它们不再使用。

但是,如果您要声明它们,否则它们可以保留为全局变量,即使在函数完成后也可以保持活动状态。

例如:

var cron = require('node-cron');

cron.schedule('* * * * *', function(){
  // y becomes a global variable
  y = 2;
});

【讨论】:

  • 是的,你是对的,但是我的对象值是从其他文件接收的。那我该怎么办?
  • 深拷贝它,这样当函数运行完成时你就不会引用它了。
猜你喜欢
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多