我在 Laravel 中有一份工作,使用 Laravel 文件系統(tǒng)將 .zip 文件從 ftp 服務(wù)器下載到本地磁盤(pán)。這些文件的大小從幾 MB 到幾 GB 不等。這是我當(dāng)前的代碼,只要我增加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); }是否有可能將下載的文件分成更小的塊?或者另一個(gè)比將 max_execution_time 設(shè)置為最大值更好的選項(xiàng)?另一種方法是在 ftp 服務(wù)器上提取存檔并逐個(gè)文件讀取內(nèi)容(csv/json 和圖像)。
1 回答

鳳凰求蠱
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
不建議在作業(yè)執(zhí)行期間更改最大執(zhí)行時(shí)間。相反,您可以將作業(yè)分派到隊(duì)列中以運(yùn)行下載等耗時(shí)的任務(wù)。
然后您可以運(yùn)行隊(duì)列工作命令,然后運(yùn)行--timeout=0。
php?artisan?queue:listen?--timeout=0
- 1 回答
- 0 關(guān)注
- 130 瀏覽
添加回答
舉報(bào)
0/150
提交
取消