首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么一个缓慢的脚本会导致我的整个站点停止呢?

为什么一个缓慢的脚本会导致我的整个站点停止呢?
EN

Server Fault用户
提问于 2011-08-10 17:48:52
回答 2查看 267关注 0票数 1

我有一个使用cURL从另一个服务器加载文件的PHP脚本。

该文件大约为24 is。我理解为什么加载文件的脚本本身需要一点时间才能执行,但是在运行脚本时,对站点的任何请求都会一直持续到脚本完成。

在我们使用相同脚本的旧共享服务器上没有发生这种情况。新服务器是云服务器。我使用了多达10个节点(6 6Ghz专用cpu、376 on内存、2500 on带宽),对此问题没有任何影响。

我不介意脚本本身需要很长时间来执行,因为它将是数据提要的自动化任务。不过,我不能让整个网站在运行的时候锁起来。

知道为什么会发生这种事吗?

更新--看起来这只发生在本地。如果我试图在脚本运行时将站点加载到另一台计算机上,它将按预期的方式工作。

EN

回答 2

Server Fault用户

发布于 2011-08-10 18:31:35

您可能可以“ignore_user_abort(真)”,然后在页面上使用HTTP重定向到另一个页面。

PHP 5也有不错的线程处理,这可能也有帮助。

票数 0
EN

Server Fault用户

发布于 2011-08-11 06:39:22

现在,关键问题是:除了获取该文件之外,您的脚本还能做什么?处理它并将数据插入数据库?也许在您的旧环境中,MySQL使用了InnoDB表,在新环境中,MySQL使用了MyISAM表。

在写操作期间,MyISAM需要完整的表锁,而不是InnoDB拥有的行级锁,因此,如果实际站点使用的表与curl脚本相同,那么这可能导致站点挂起。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/299754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档