Hub*_*bro 7 php cron command-line infinite-loop
我有一张地图.在这张地图上,我想显示从几个表中收集的实时数据,其中一些表有惊人的行数.不用说,获取此信息需要很长时间.此外,涉及ping.根据脱机或远程服务器的不同,此数据的收集时间可能在1到10分钟之间.
我希望地图能够快速响应,所以我决定在我的数据库中添加一个新表,其中只包含地图所需的数据.这意味着我需要一个后台进程来持续更新新表中的信息.Cron作业当然是可能的,但我希望在前一个间隔完成后立即刷新数据.如果离线IP地址的数量突然激增并且循环运行的时间比Cron作业的间隔长,该怎么办?
我自己的解决方案是在PHP中创建一个由命令行运行的无限循环.此循环将刷新映射到MySQL的数据,并记录其他有用的数据,如循环时间和ping尝试失败等,然后在短暂停顿(几秒钟)后重新启动.
然而 - 人们一再告诉我,永远运行的PHP脚本是不好的.过了一会儿它会占用千兆字节的RAM(和其他可怕的东西)
部分我正在写这个问题,以确认这是否实际上是这样,但一些提示和技巧我将如何编写一个不泄漏内存的干净循环(如果可能的话)不会出错.关于此事的意见也将受到赞赏.
我觉得答案对我将标记为正确的问题有最大的启示.
循环应该在一个脚本中,该脚本将激活/调用实际脚本作为不同的进程......就像 cron 正在做的那样。
这样,即使内存泄漏,并且未收集的内存正在累积,它也会/应该在每个周期后释放。
| 归档时间: |
|
| 查看次数: |
2661 次 |
| 最近记录: |