cron 解决方案的优点

cron 解决方案的优点

我正在构建一个简单的 nodejs 脚本,该脚本根据我当前的 IP 更新 DNS 记录。该脚本运行良好,但我对如何运行它有些担心。必须每 5 分钟检查一次我的 IP,我陷入了两难境地。

我应该使用 Node 的设置间隔或者我应该创建一个 cron 作业?哪个会消耗最少的 RAM 和 CPU?请记住,该脚本在具有 512MB RAM 和仅 1 个核心的 Raspberry Pi Zero 上运行。

我知道这cron似乎是更好的选择,但它到底好多少呢?考虑到我的规格,这重要吗?

答案1

cron 解决方案的优点

  • 90% 的时间内内存消耗更少
  • 内存泄漏得到有效消除
  • 代码每次都会重新加载所有库,因此更新会在下次运行时生效,无需额外的复杂性

守护进程解决方案的优势

  • 加载时间只发生一次,因此后续运行时的磁盘 I/O 和 CPU 较低,因为您不会解析源代码或提取所有库
  • 后续运行中较低的 CPU 和磁盘 I/O 也意味着对于 Raspberry 的任何主要应用程序来说,都有更多的资源可用。
  • Linux 应该会换出您未使用的内存。不过这可能会非常慢,具体取决于您的存储。

结论

我同意 Alexander T 的观点,这cron似乎可能会更好,但如果您的主应用程序对后台进程很敏感,那么最好使用守护进程。

答案2

我认为cron这样更好。我认为每 5 分钟启动一次脚本比每 5 分钟触发一次启动脚本更好。例如,如果您的脚本死机了,您会怎么做?使用 cron,它会在 5 分钟后再次启动。

那么对于内存和 CPU。我不知道 node.js 现在如何消耗内存,但之前存在内存泄漏问题,并且进程长时间运行可能会出现问题。对于 CPU 利用率,我认为没有区别。

相关内容