PHP-共享主机环境上运行时间长的流程

时间:2018-08-16 00:44:27

标签: php process shared-hosting

我有一个无法解决的问题。我正在开发脚本,并且运行过程很长,总的来说,我是从外部url抓取一些数据,然后将这些数据添加到数据库中,这大约需要30分钟。

我已经使用 @ini_set(“ max_execution_time”,1800); 来允许脚本运行足够长的时间。

类似这样的东西:

function calculator_get_games() {
   @ini_set( "max_execution_time", 1800 );

   $api = Api::getInstance();

   $api::get_all_games();
}

在我的本地主机上有效。问题是,当然,共享主机环境不起作用。脚本在经过一定时间后制动,并且出现 503错误。

奇怪的是,我认为这与max_execution_time不相关,因为脚本在制动之前运行了几分钟,并且服务器上的max_execution_time设置为60秒。我读到某个地方可以使用 set_time_limit()函数来重置计数器或延长脚本的执行时间,但这无济于事,一段时间后我遇到了同样的错误。我还读到一些共享主机上的公司设置了一个PHP脚本可以运行多长时间的限制,与max_execution_time不相关。

问题在于该脚本可以被各种用户使用,而我无法控制服务器。因此,我希望找到一种方法,如果可能的话,允许该脚本甚至在上述共享主机上运行,​​以便用户可以在几乎所有主机环境上使用该脚本而不会出现问题。

因此,感谢您的帮助。我可以使用的任何想法或替代方法。

谢谢。

编辑:

像Jamie_D指出的那样,我还不够清楚。我已经在后台使用WordPress Cron来启动脚本并每天进行更新。但是它与我尝试从浏览器执行脚本的时间同时刹车。我正在开发一个用户基本上可以在任何服务器上使用的插件。激活插件后,WP cron将使用 file_get_contents 开始抓取数据,并在30分钟后返回数据,这些数据将被馈送到数据库中。希望能澄清一下,对不起,对于我的困惑,我在其中一些方面还是一个初学者。

1 个答案:

答案 0 :(得分:0)

如果您需要执行花费这么长时间的脚本,我会考虑不依赖调用脚本的后台进程。由于您尚未弄清申请意图,因此无法为您指明正确的方向。