问题描述
我想从FTP服务器下载zip文件(从200mb到3GB)到我的应用程序服务器的本地目录。为此,我编写了一个带有文件名的作业,构造了相关的路径/目录,然后将文件从ftp流到本地目录。不幸的是,该作业始终无法通过以下消息显示大文件:
Illuminate \ Queue \ MaxAttemptsExceededException: App \ Jobs \ DownloadFileFromFtp已尝试过多次或已运行 太长。该作业可能先前已超时。在 /home/forge/staging.vehicle-service.faaren-global.de/vendor/laravel/framework/src/Illuminate/Queue/Worker.PHP:648
我正在通过PHP artisan queue:work --timeout=0
运行队列工作器,因此应该没有超时。
这是我的工作:
private function downloadFIleFromFtp(): bool
{
try {
if(!file_exists(storage_path('app/temp/'))){
mkdir(storage_path('app/temp/'));
}
$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);
return true;
} catch(\Exception $ex){
$log = ImportLog::createWithException($ex,"Download from ftp Failed");
$this->import->logs()->save($log);
return false;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)