我正在用 Perl 为时事通讯编写守护进程。
守护进程将在服务器上全天候运行 24/7。它几乎所有时间都与 postgresql 数据库保持事件连接。
我对 Perl 没有那么多经验,所以如果你们中的一些人可以分享以下信息,我会很高兴:
如何限制 RAM。我不想离开 ram。正如我所说,该程序将作为守护进程一直运行而不会停止。
编写此类守护进程时应该注意什么?
最佳答案
就 SQL 连接而言 - 确保您没有泄漏内存。从查询中检索所需的最少数据量,并确保存储数据的数据结构立即超出范围,以便垃圾收集器可以回收它们
请注意,可能存在您无法控制的内存泄漏(例如,在 Postgresql 连接代码中)。这是众所周知的事情。这个问题的最佳解决方案(除了进行精确的内存分析和修复底层库中的泄漏)是让你的守护进程拉出一个 Phoenix - 停止它正在做的事情并
exec()
一个新的副本本身。就编写 Perl 守护进程而言,一些资源:
- http://www.webreference.com/perl/tutorial/9/
-
Proc::Daemon
- 将 Perl 程序作为守护进程运行。
关于perl - 用 perl 写一个守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4972072/