用 Perl 编写守护进程

问题描述 投票:0回答:3

我正在用 Perl 为时事通讯编写一个守护进程。

守护进程将在服务器上 24/7 运行。它几乎始终与 postgresql 数据库保持活动连接。

我对 Perl 没有太多经验,所以如果你们中的一些人可以分享以下信息,我会很高兴:

  1. 如何限制内存。我不想离开公羊。正如我所说,这个程序将作为守护进程一直运行而不会被停止。

  2. 编写此类守护进程时应该注意什么?

perl postgresql daemon
3个回答
5
投票
  1. 就 SQL 连接而言 - 确保不会泄漏内存。从查询中检索所需的最少量数据,并确保存储数据的数据结构立即超出范围,以便垃圾收集器可以回收它们

    请注意,可能存在您无法控制的内存泄漏(例如在 Postgresql 连接代码中)。众所周知它会发生。解决这个问题的最佳解决方案(除了进行精确的内存分析和修复底层库中的泄漏)是让你的守护进程拉出一个 Phoenix - 停止做它正在做的事情并

    exec()
    自己的新副本。

  2. 就编写 Perl 守护进程而言,一些资源:


2
投票

关于 #1:Perl 是垃圾收集的。

其有效含义是,您应该确保在使用完数据后清除所有对数据的引用,从而允许垃圾收集器运行。

http://perldoc.perl.org/perlobj.html#Two-Phased-Garbage-Collection


1
投票

需要注意的一件事是内存泄漏。 SO 上已经有一个关于 Perl 中内存泄漏的非常很好的线程

© www.soinside.com 2019 - 2024. All rights reserved.