仅特定脚本的PHP 7.4.8最大执行时间

问题描述

首先:对不起,如果已经回答。我进行了多次搜索和测试,但没有找到问题的真实答案(某些答案为

问题:我想增加给定脚本(例如说5分钟)的最大执行时间,并且仅此脚本。我希望其他脚本继续使用.ini最大执行时间(30秒)。

.ini的最大执行时间为30秒。在上述脚本的开头,我尝试过:

set_time_limit(0);
ini_set('max_execution_time',0);

但是它似乎没有作用,我的脚本总是在30秒(.ini值)之后超时。 从SO的读物来看,这些方法仅在“ PHP Safe mode is disabled”下有效。但是,来自the PHP website

此功能自PHP 5.3.0起已弃用,而自PHP 5.4.0起已取消。

从SO:

当PHP在安全模式下运行时,此功能无效。除了关闭安全模式或更改php.ini中的时间限制外,没有其他解决方法。

所以我的问题:

  • 自PHP 5.4.0起,set_time_limitini_set('max_execution_time',0)是否应该在没有附加.ini配置的情况下工作? (因此,在PHP 7.4.8上)
  • 我不想在.ini中设置5分钟,那么使只有1个脚本的最大执行时间更长的真正方法是什么?
  • 现在没有安全模式了,这些方法应该随时可用吗?

非常感谢

解决方法

一种选择是使用后台进程。 基本上,您会创建某种形式的队列,您的调用脚本将写入该队列,然后运行从该队列读取的cron作业,然后cron作业将运行您的脚本。

php超时仅适用于从http服务器运行的脚本,不适用于从批处理/ cron运行的脚本,因此您的cron作业可以永久运行,而与您在php.ini中设置的内容无关。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...