【【原创】PHP超时处理全面总结】教程文章相关的互联网学习教程文章

php-是否仍要为file_exists或任何其他函数设置超时?

我正在运行一个网站,我们从Fuse上安装的文件夹(cloudfuse-Rackspace Cloudfiles容器)中提供大量文件,该网站在大多数情况下都能正常运行,但是Fuse连接时不时地停滞,我的所有Apache进程挂起,等待file_exists()函数返回. 我的问题是,是否有为特定功能设置超时或使用其他功能检查文件是否存在,但如果功能花费的时间超过x秒,则返回false?解决方法:我认为file_exists()只是简单的功能,并不打算用于此类操作. 解决方法1(非常优雅) >制作正...

PHP的-curl_multi_select总是阻塞超时值【代码】

在Windows XP PHP 5.3.5上运行Example #1 from PHP时,curl_multi_select()行将始终在指定的超时时间内阻塞(如果为空白,它将阻塞1秒钟,如果我指定5秒钟,它将阻塞5秒钟),无论获取内容所需的时间.我怀疑与this bug有关. 问题是:最好的解决方法是什么?我能想到的最好的方法是摆脱curl_multi_select()和usleep(x)作为节省周期的一种方式.解决方法:只要您可以忍受1秒钟的阻塞,这可能会有所帮助. 在manual page for curl_multi_select上...

PHP会话超时htaccess文件【代码】

嗨,我是编程新手,但目前正在处理会话超时问题.基本上,即使更改了session.gc_maxlifetime,我的会话也会一直超时.我认为另一个使用相同目录存储未设置maxlifetime的会话数据的脚本正在运行,因此它将使用较短的值.为了解决这个问题,我已经更改了htaccess文件,但它在1小时30分钟后仍会终止,我需要它持续更长的时间.我的htaccess文件在下面.我已经看过并尝试了该板上的许多相关帖子,但到目前为止没有任何工作.任何想法将不胜感激.SetEnv...

PHP超时会阻止人们在同一网络上加载页面吗?【代码】

如果我有一个执行较长时间的任务的PHP页面,并且尝试同时从同一站点加载另一个页面,则在第一个页面超时之前将不会加载该页面.例如,如果我的超时设置为60秒,那么我将无法加载任何其他页面,直到页面花费很长时间加载/超时之后60秒.据我所知,这是预期的行为. 我要弄清楚的是,导致上述情况的错误/长时间加载的PHP脚本是否还会影响同一网络上的其他人.我个人认为这是浏览器出现的问题(即如果我在Chrome中加载了http://somesite.com/myscr...

PHP-60秒超时,无法找到正确的参数来修复它【代码】

如果脚本执行时间超过60秒,我的网站就会退出(错误500),但我不明白为什么. phpinfo:max_execution_time = 600 max_input_time = 600在我的httpd.conf文件中:timeout = 600所以我不知道如何增加这个参数. 我在我的phpinfo中找到了(但是我不知道是否相关):default_socket_timeout = 60 mysql.connect_timeout = 60我认为mysql.connect_timeout根本不相关(我在带有sleep(65)的页面上收到错误;仅…)解决方法:我终于找到了答案! 我将...

php-如何为Laravel工匠设置超时【代码】

如何设置工匠的超时时间?超时后,工作将被杀死. 我在应用程序上使用Laravel 5.0,我每分钟在app / Console / Kernel.php中安排一些工匠工作.当我重复这些工作时ps -ef | grep artisan似乎每个作业都在单独的进程中运行.root 23322 1 0 13:44 ? 00:00:00 xxx/php-5.5.7/bin/php artisan fetchTopic 0 10 1 root 23324 1 0 13:44 ? 00:00:00 xxx/php-5.5.7/bin/php artisan fetchTopic 0 10 2 root ...

php-Laravel排队的作业比超时时间长很多【代码】

我有一个Laravel排队的工作,它从网页中提取链接.通过Laravel Forge配置的队列侦听器的超时为240秒(4分钟).但是,作业最多需要45分钟才能运行. 我的队列设置是:'redis' => ['driver' => 'redis','connection' => 'default','queue' => 'default','retry_after' => 350, ],并且有多个作业流程在运行-多达35个流程.可以想象,这正在消耗大量服务器内存.这些过程似乎一直徘徊.如上所示,这些过程的命令是:php7.1 artisan queue:work red...

php-具有共享会话的Yii2高级应用程序不会在会话超时时自动登录【代码】

我是新来的.我有一个有关Yii2高级模板共享会话的问题. 我有一个带有4个子应用程序的yii2高级应用程序:frontend - landing page, login backend - admin panel customer - panel for customers provider - panel for providers我有一个始终从前端应用程序登录的应用程序,根据我的角色,我被重定向到客户,提供商或后端应用程序. 一切正常,直到我的会话超时.在这三个内部应用程序中,我成为未经授权的用户.刷新页面无济于事,但是当我打...

php-如何通过ajax上传文件而没有超时?【代码】

我正在使用ajax上传一组约50个文件,全部< = 5MB.如果连接速度较慢,则上传将“超时”,甚至没有完成第一次上传(大约需要45秒).在Firefox中,ajax将失败并显示“错误”响应,但没有更多信息.在Chrome中,出现net :: ERR_CONNECTION_RESET错误. 我检查了我的Apache和php.ini设置,我相信它们已经足够.post_max_size = 1000M upload_max_filesize = 15M max_input_time = -1 max_execution_time = 0 max_file_uploads = 50 memory_limit = 1...

PHP-具有超时条件的XMLHTTPRequest【代码】

在XMLHTTPRequest中,如何使用超时条件,以便如果服务器在固定的时间段内(例如5秒)没有响应,则应显示错误消息? 换句话说,该请求应等待5秒钟,如果服务器没有响应,则该请求应显示一条消息,提示“超时.请稍后重试”.如果代码可以同时用于同步和异步会更好. 我使用的以下代码没有超时条件.function testXMLHTTP() {if(window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}xm...

PHP-stream_socket_client超时【代码】

我正在尝试调试PHP函数stream_socket_client,但我真的不知道如何.这是我遇到麻烦的代码:$this->socket = @stream_socket_client($remote, $errno, $errstr,$this->request->getConfig('connect_timeout'),STREAM_CLIENT_CONNECT, $context);if (!$this->socket) {throw new HTTP_Request2_ConnectionException("Unable to connect to {$remote}. Error: {$errstr}",0, $errno);}引发异常,错误显示为“无法连接到tcp://www.dropbo...

PHP PDO:设置FireBird连接超时【代码】

我正在连接到FireBird数据库,该数据库在线时可以正常工作.当服务器脱机时,用户会收到一个经过最大执行时间的错误. 因此,我想用try catch包围连接语句,并将超时设置为10秒.但是我找不到合适的属性.默认的ATTR_TIMEOUT似乎不起作用.谁能告诉我PDO和FireBird是否可行?解决方法:不确定PHP / PDO,但您可以尝试在firebird.conf文件中找到ConnectionTimeout参数.默认值为180秒(引自conf文件):# ---------------------------- # Client C...

如何为Google API PHP客户端库设置超时【代码】

我正在使用Google的php client library来构建应用程序.有时,Google最多需要100秒才能响应API请求.我想将套接字超时限制为30秒. 有人知道这怎么可能吗?在文档中没有看到任何清晰的示例,并且在查看源代码时,我没有遇到任何与超时相关的问题. 我确实在Java客户端的文档中找到了this example,但是似乎找不到与PHP等效的文件. 谢谢你的帮助.解决方法:根据this issue,您可以直接将参数传递给curl.$client->setClassConfig('Google_IO_Cu...

PHP oci_connect()卡住了/没有超时

我们正在使用Lumen 5.2.x(Laravel)应用程序从Oracle数据库获取数据.因此,我们使用oci_connect()连接到数据库. (其他信息:我们使用Oracle InstantClient) 由于未知原因,该应用程序没有响应,也不会返回任何数据.经过大量的调试,我们发现它陷入了同样的方法:oci_connect().显然,该函数未返回“超时”消息或类似内容. 后来,数据库似乎移到了另一台主机,这就是它无法连接的原因.但是,我们期望出现错误,而不是等待大量时间. 这就是我们...

php-HTTP请求被视为超时之前的默认时间是多少?

对于PHP,HTTP请求被视为超时之前的默认时间是多少? 我正在使用PECL HTTP扩展名发出HTTP请求.我可以在发出请求时设置超时限制,但是如果没有明确指定,我想知道默认值是什么. 我没有通过PHP手册来搜寻.我会很感谢有证据支持的答案,例如与相关手册页的链接,而不是投机建议. 我很想找出默认超时实际上并不只是可能的超时时间.我可以猜测可能是30秒,因为这似乎是一个合理的值,但是我找不到任何可证实或否认的信息.解决方法:我很确定您要...