0

我正在调用可能需要一段时间并应在 5 分钟后中断的 shell 命令。无论如何,这似乎不起作用。

我将其归结为以下测试代码:

<?php

set_time_limit(1);
echo 'TL = ' . set_time_limit(1) . PHP_EOL;
sleep(5);
echo 'finished, not interrupted';

这给了我以下输出:

TL = 1 finished, not interrupted

所以看起来时间限制设置正确 - 但脚本仍然运行 5 秒。

我正在使用带有 mod_php 的 PHP 版本 5.6.11

4

2 回答 2

1

只有在程序实际执行时才强制执行 PHP 时间限制。根据手册sleep,延迟不一定如此:

注意: set_time_limit() 函数和配置指令 max_execution_time 只影响脚本本身的执行时间。在确定脚本运行的最长时间时,不包括在脚本执行之外发生的任何活动所花费的时间,例如使用 system() 的系统调用、流操作、数据库查询等。在测量时间是真实的 Windows 上,情况并非如此。

于 2015-11-19T15:10:20.040 回答
1

花费sleep的时间不计入脚本执行时间。

于 2015-11-19T15:10:23.543 回答