PHP laravel include文件报 too many open files?

PHP7.3,在laravel框架执行定时任务,报错提示打开文件太多,看报错像是在加载文件时报的错。

[2023-03-15 00:14:13] local.ERROR: include(/www/vendor/symfony/string/UnicodeString.php): failed to open stream: Too many open files {"exception":"[object] (ErrorException(code: 0): include(/www/vendor/symfony/string/UnicodeString.php): failed to open stream: Too many open files at /www/vendor/composer/ClassLoader.php:571)
[stacktrace]
#0 /www/vendor/laravel/lumen-framework/src/Concerns/RegistersExceptionHandlers.php(47): Laravel\\Lumen\\Application->handleError(2, 'include(/wwwroo...', '/www/ve...', 571)
#1 /www/vendor/composer/ClassLoader.php(571): Laravel\\Lumen\\Application->Laravel\\Lumen\\Concerns\\{closure}(2, 'include(/wwwroo...', '/www/ve...', 571, Array)
#2 /www/vendor/composer/ClassLoader.php(571): include()
#3 /www/vendor/composer/ClassLoader.php(428): Composer\\Autoload\\includeFile('/www/ve...')
#4 [internal function]: Composer\\Autoload\\ClassLoader->loadClass('Symfony\\\\Compone...')
#5 /www/vendor/symfony/console/Helper/Helper.php(65): spl_autoload_call('Symfony\\\\Compone...')
#6 /www/vendor/symfony/console/Application.php(871): Symfony\\Component\\Console\\Helper\\Helper::width('mysqli_query() ...')
#7 /www/vendor/symfony/console/Application.php(840): Symfony\\Component\\Console\\Application->doRenderThrowable(Object(ErrorException), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#8 /www/vendor/laravel/lumen-framework/src/Exceptions/Handler.php(202): Symfony\\Component\\Console\\Application->renderThrowable(Object(ErrorException), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#9 /www/vendor/laravel/lumen-framework/src/Console/Kernel.php(250): Laravel\\Lumen\\Exceptions\\Handler->renderForConsole(Object(Symfony\\Component\\Console\\Output\\ConsoleOutput), Object(ErrorException))
#10 /www/vendor/laravel/lumen-framework/src/Console/Kernel.php(120): Laravel\\Lumen\\Console\\Kernel->renderException(Object(Symfony\\Component\\Console\\Output\\ConsoleOutput), Object(ErrorException))
#11 /www/artisan(35): Laravel\\Lumen\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#12 {main}
"} 

各位大佬有解决办法嘛?

阅读 2.3k
3 个回答

检查一下有没有导入的死循环

定时任务代码发上来。
定时任务是常驻内存吗?

使用 require_onceinclude_once 函数,它们只会在第一次调用时打开文件并将其缓存,而后续的调用将直接使用缓存的文件。

我看你上面报错是因为在 /www/vendor/composer/ClassLoader.php 这个文件中多次用了 include(/www/vendor/symfony/string/UnicodeString.php) 这个文件导致的

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题