我在 Laravel 中有一份工作,使用 Laravel 文件系統將 .zip 文件從 ftp 服務器下載到本地磁盤。這些文件的大小從幾 MB 到幾 GB 不等。這是我當前的代碼,只要我增加max_execution_time:public function handle(){ ini_set('max_execution_time', 300); $destination = storage_path('app/temp/' . $this->import->unique_filename); $ftpDisk = Storage::disk($this->import->disk); $stream = $ftpDisk ->getDriver() ->readStream($this->import->filename); file_put_contents($destination, stream_get_contents($stream), FILE_APPEND); }是否有可能將下載的文件分成更小的塊?或者另一個比將 max_execution_time 設置為最大值更好的選項?另一種方法是在 ftp 服務器上提取存檔并逐個文件讀取內容(csv/json 和圖像)。
1 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
不建議在作業執行期間更改最大執行時間。相反,您可以將作業分派到隊列中以運行下載等耗時的任務。
然后您可以運行隊列工作命令,然后運行--timeout=0。
php?artisan?queue:listen?--timeout=0
- 1 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消