(我们的服务器是基于 Linux 的)
我是一位经验丰富的 PHP 开发人员,但第一次我将开发一个始终运行并获取一些数据的机器人。
我将用一个简单(和示例)场景来解释我的应用程序。我有大约 2000 个网站 url,我的应用程序将访问这个 url 并记录网页的内容。此应用程序将工作 7 天 24 小时。当它完成 2000 个网站时,它将重新开始工作。
但我需要一些关于我的服务器的建议。如您所见,我的应用程序将无限运行,直到我关闭服务器。我可以用这个做这个无限循环:
while(true)
{
APPLICATION CODES HERE
}
但我认为这对服务器来说是个祸害 :) 有可能在服务器端做这样的事情吗?
我也认为使用cronjobs但它不适用于我的场景。因为我的脚本尽快重新开始工作,所以它完成了工作。我必须“完成工作后重新开始”,而不是“每 30 分钟开始一次”。因为我不知道,也许获取所有 2000 个网站需要 30 多分钟或不到 30 分钟。
我希望我解释得很好。
我也担心内存使用情况。如您所知,垃圾收集器会在每次 PHP 脚本停止后清理内存。但正如我所说,我的应用程序不会停止几天(也许几周)。所以垃圾收集器不会被触发。我在脚本末尾手动取消设置( unset() 函数)所有使用的变量。够了吗?
我需要服务器管理员的一些建议 :)
PS。我将其开发为控制台应用程序,而不是 Web 应用程序。我可以从命令行执行它。