added delete_failed_files into SchedulerService.php

This commit is contained in:
Peter Papp
2021-03-14 12:42:25 +01:00
parent d0bd866354
commit bb469f2520
5 changed files with 90 additions and 54 deletions

View File

@@ -7,6 +7,8 @@ namespace App\Services;
use App\Models\Share;
use App\Models\Zip;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Storage;
class SchedulerService
{
@@ -45,4 +47,38 @@ class SchedulerService
}
});
}
/**
* Get and delete failed files older than 24 hours
*/
public function delete_failed_files(): void
{
$local_disk = Storage::disk('local');
// Get all files from storage
$files = collect([
//$local_disk->allFiles('files'),
$local_disk->allFiles('chunks')
])->collapse();
$files->each(function ($file) use ($local_disk) {
// Get the file's last modification time.
$last_modified = $local_disk
->lastModified($file);
// Get diffInHours
$diff = Carbon::parse($last_modified)
->diffInHours(Carbon::now());
// Delete if file is in local storage more than 24 hours
if ($diff >= 24) {
Log::info("Failed file or chunk $file deleted.");
// Delete file from local storage
$local_disk->delete($file);
}
});
}
}