我有一张地图。在这张地图上,我想显示从几个表中收集的实时数据,其中一些表的行数惊人。不用说,获取这些信息需要花费很长的时间。此外,涉及ping。根据离线或远离的服务器,这些数据的收集时间可能会在1到10分钟之间变化。为什么连续运行PHP脚本这么糟糕?
我希望地图能够快速响应,因此我决定向我的数据库添加一个只包含地图所需数据的新表。这意味着我需要一个后台进程来不断更新我的新表中的信息。 Cron工作当然是一种可能性,但我希望在前一个时间间隔完成后立即刷新数据。如果离线IP地址的数量突然增加,并且循环运行时间比Cron作业的时间间隔更长,会怎样?
我自己的解决方案是在PHP中通过命令行创建一个无限循环。此循环会刷新映射到MySQL的数据,并记录其他有用的数据,例如循环时间和Ping失败尝试等,然后在短暂停顿(几秒钟)后重新启动。
但是 - 人们反复告诉我,一个永远运行的PHP脚本是坏的。经过一段时间后,它会消耗千兆字节的RAM(以及其他可怕的东西)
部分我正在写这个问题来确认事实是否如此,但是关于如何去写一个干净的东西的一些技巧和窍门循环不会泄漏内存(如果可能的话)不会出错。关于这个问题的意见也将不胜感激。
我认为这个问题的答案对我将标记为正确的问题最为重视。
一个令人难以置信的小问题,但请不要添加签名/签收问题。 (除此之外,这是一个构建得非常好的问题。):-) – 2011-03-20 22:58:05
对不起,谢谢:-) – Hubro 2011-03-20 23:03:54