【发布时间】:2009-06-01 10:15:18
【问题描述】:
这个问题可能看起来很奇怪。
但是以前每次做PHP项目的时候,都会遇到这种不好的体验:
脚本在 10 秒后取消运行。这会导致非常糟糕的数据库不一致(删除循环的错误示例:用户即将删除相册。相册对象从数据库中删除,然后在删除照片的一半时脚本在原处被杀死,并且10.000 张照片没有参考)。
这不是交易安全的。我从来没有找到一种方法来安全地做某事,以确保它完成。如果脚本被杀死,它就会被杀死。就在一个循环的中间。它会被杀死。这从未发生在带有 java 的 tomcat 上。 Java 运行,运行,运行,如果需要很长时间。
许多时事通讯脚本试图通过将作业拆分成许多包来解决这个问题,即一次发送 100 个,然后重新加载页面(哦,伙计,真愚蠢),做下一个,然后很快。最常见的情况是挂起或执行脚本需要超过 10 秒的时间,并且您的平台已瘫痪。
但是,我听说非常大的项目使用 PHP,例如 studivz(德国的 facebook 克隆,实际上是最大的德国网站)。所以有一点希望,这种不良行为只是来自不专业的托管公司,他们只是因为他们的服务器太糟糕而杀死了 php 脚本。这件事的真相是什么?能否以这样的方式进行配置,使脚本永远不会因为它们花费更长的时间而被杀死?
【问题讨论】:
-
当然您可以定义在 PHP 中执行脚本可能需要多长时间。在您自己的服务器上,只需将新值放入 php.ini 文件中即可。使用简单的虚拟主机解决方案,您几乎没有机会做到这一点。
-
set_time_limit(0);我拥有世界上所有的时间。
标签: php