在perl中编写守护进程

时间:2011-02-11 17:22:31

标签: perl postgresql daemon

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

守护程序将在服务器上全天候运行。它几乎一直都与postgresql数据库有一个活动的连接。

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

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

  2. 写这样的守护进程时我应该注意什么?

3 个答案:

答案 0 :(得分:5)

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

    请注意,您可能无法控制内存泄漏(例如,在Postgresql连接代码中)。众所周知,这种情况会发生。针对该问题的最佳解决方案(缺少精确的内存分析和修复底层库中的泄漏)是为了让你的守护进程拉出凤凰 - 停止正在做的事情,并exec()自己的新副本。

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

答案 1 :(得分:2)

关于#1:Perl被垃圾收集。

有效的意思是你应该确保在完成所有数据引用后清理它们,从而允许垃圾收集器运行。

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

答案 2 :(得分:1)

需要注意的一件事是内存泄漏。 SO上已经有nice thread about memory leaks in Perl了。