我正在尝试使用PHP创建网站监控webapp。当我使用curl从不同网站收集标题并在网站状态发生变化时更新MySQL数据库(例如,如果某个网站已'停机')。使用PHP和cron缩放卷曲
我正在使用curl_multi(通过我稍微改编的Rolling Curl X类)来并行处理20个网站(这似乎给出了最快的结果)和CURLOPT_NOBODY以确保只收集标题,并且尝试过简化脚本以尽可能快地完成脚本。
它工作正常,我可以处理约40个网站。 2-4秒。我的计划是每分钟通过cron运行脚本......所以看起来我能够每分钟处理大约600个网站。虽然这在当前很好,但从长远来看还不够。
那么我该如何扩展呢?是否有可能并行运行多个cron,还是会遇到瓶颈问题?
我想我可能会将数据库分成400组,并为这些组运行单独的脚本(例如,ids 1-400,401-800,801-1200等可以运行单独的脚本),因此不会有数据库损坏的危险。这样每个脚本将在一分钟内完成。
但是感觉这可能不起作用,因为一个运行curl_multi的脚本似乎在20个并发请求中性能最大。那么这项工作还是有更好的方法?
谢谢 - 这是一个很大的帮助。我不认为我可以使用pthreads,因为“pthreads扩展名不能在Web服务器环境中使用”,并且这是在Web服务器上。 – Ryan