我有几个关于 PHP 内存使用的问题。我将自己进行一些测试,但获得各种建议非常有帮助。
我最近了解了 PHP 函数 ignore_user_abort(),即使用户关闭页面,它也允许脚本继续运行。我正在考虑将它用于我的电子邮件通讯工具而不是 Cron 作业,因为配置 Cron 作业有很多麻烦。让用户停留在页面上、使用 AJAX 请求以及在页面内容交付后运行部分脚本的替代方法也都存在问题。
我的解决方案是在脚本的开头运行 call ignore_user_abort(true),在生成内容后的最后,调用 flush() 以进行良好的测量,然后运行时事通讯脚本。或者,使用 AJAX 执行此操作。
首先,有没有人看到这种方法的问题?
其次,如果我使用没有设置时间限制的脚本,并且在每封电子邮件中都使用一个while循环,那么如果我一次性完成它,内存使用情况会如何?因为我会覆盖变量,而不是使用新变量,所以我认为它会很低。
第三,因为如果我要发送大量电子邮件,比如每次运行 1000 封,我不想让我的邮件服务器超载。在我的 cron 作业中,我每 5 分钟运行一次脚本,发送一批 50 封电子邮件。如果我一次性执行此操作,我可以发送 50 封电子邮件,调用 sleep 说 5 分钟,然后再继续发送 50 封电子邮件吗?如果是这样,睡眠期间的脚本内存使用情况如何?这会是一种有效的方法吗?
我在这里真正想做的是想出一种方法来创建一个时事通讯工具,它不需要设置 Cron 作业的复杂(对于非技术人员)任务(这甚至不是一个选项共享主机),并且不需要用户在单个页面上保持浏览器打开。
欢迎任何想法建议或反馈。谢谢!