我有一个Python脚本可以转换PDF文件。它在我的Laravel应用程序中通过PHP调用:
shell_exec
这适用于任何高达250MB的PDF,,但因较大的PDF而失败,例如500Mb。
如果我直接从命令行调用Python脚本,它可以正常工作并在大约5分钟内完成。只有当failed_jobs
调用它才会失败。
这是在一个Laravel排队的工作中发生的,所以据我所知,不是使用HTTP / PHP FPM,而是命令行,它应该没有超时?
Laravel队列工作程序正在运行,超时设置为0(无超时)。
PHP CLI设置中还有什么可能导致此失败吗?有什么知道错误会被记录的地方 - laravel.log
表中没有任何内容,{{1我的Bugsnag集成没有抓住任何东西。
当它从命令行运行正常时,我猜它不是Python问题,而是与从PHP调用它有关。
服务器有60Gb的RAM,并通过htop
观察进程,它永远不会超过3%的RAM使用率。可能有其他硬编码RAM限制吗?
我正在使用Laravel 5.4,Ubuntu服务器,Python 2.7.12。
答案 0 :(得分:0)
这是因为脚本有执行时间和内存限制,你可以在php.ini中查看。通常是max_execute_time = 30s
。和内存限制默认为128M
; Maximum execution time of each script, in seconds ; http://php.net/max-execution-time ; Note: This directive is hardcoded to 0 for the CLI SAPI max_execution_time = 300
和内存限制
; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 1280M