mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-28 17:03:59 +00:00
Laravel Vapor - New V2 command to do housekeeping at S3 Bucket
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Jobs\Commands\V2;
|
||||
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class HouseKeepingS3FilesV2CommandJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
|
||||
public function handle()
|
||||
{
|
||||
Log::info(Carbon::now() . ': Start job - Housekeeping temporary files in S3 Bucket.');
|
||||
$start = new Carbon();
|
||||
|
||||
$s3 = Storage::disk('s3');
|
||||
$directories = [
|
||||
'temp',
|
||||
];
|
||||
foreach ($directories as $directory) {
|
||||
$startInner = Carbon::now();
|
||||
Log::info(Carbon::now() . ' [HouseKeepingS3FilesV2] Start cleaning - ' . $directory);
|
||||
|
||||
$objects = $s3->allFiles($directory);
|
||||
|
||||
foreach ($objects as $object) {
|
||||
$s3->delete($object);
|
||||
Log::info('[HouseKeepingS3FilesV2] Deleted object: ' . $object);
|
||||
}
|
||||
|
||||
Log::info('[HouseKeepingS3FilesV2] All files have been deleted.');
|
||||
|
||||
$endInner = Carbon::now();
|
||||
$elapsedTime = $startInner->diff($endInner)->format('%H:%I:%S');
|
||||
Log::info(Carbon::now() . ' [HouseKeepingS3FilesV2] Process ended. ElapsedTime: ' . $elapsedTime);
|
||||
}
|
||||
|
||||
$end = new Carbon();
|
||||
$elapsedTime = $start->diff($end)->format('%H:%I:%S');
|
||||
Log::info(Carbon::now() . ': End job - Housekeeping temporary files in S3 Bucket. ElapsedTime: ' . $elapsedTime . '.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands\V2;
|
||||
|
||||
use App\Classes\Jobs\Commands\V2\HouseKeepingS3FilesV2CommandJob;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class HouseKeepingS3FilesV2Command extends Command
|
||||
{
|
||||
protected $signature = 'housekeeping-s3-files-command';
|
||||
|
||||
protected $description = 'Housekeeping temporary files in S3 Bucket';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function handle()
|
||||
{
|
||||
HouseKeepingS3FilesV2CommandJob::dispatch();
|
||||
}
|
||||
}
|
||||
+22
-15
@@ -37,27 +37,34 @@ class Kernel extends ConsoleKernel
|
||||
->everyFiveMinutes()
|
||||
->withoutOverlapping();
|
||||
|
||||
$schedule->command('email-do-to-vt-command')
|
||||
->dailyAt('10:00')
|
||||
$schedule->command('housekeeping-s3-files-command')
|
||||
->everyFiveMinutes()
|
||||
->withoutOverlapping();
|
||||
|
||||
$schedule->command('seasonal-segmant-company-remove-command')
|
||||
->dailyAt('01:00')
|
||||
->withoutOverlapping();
|
||||
//cief todo: disable commands to avoid unintentional interfering with production starts
|
||||
// $schedule->command('email-do-to-vt-command')
|
||||
// ->dailyAt('10:00')
|
||||
// ->withoutOverlapping();
|
||||
|
||||
$schedule->command('delete-bulk-download-files-command')
|
||||
->hourly()
|
||||
->withoutOverlapping();
|
||||
// $schedule->command('seasonal-segmant-company-remove-command')
|
||||
// ->dailyAt('01:00')
|
||||
// ->withoutOverlapping();
|
||||
|
||||
$schedule->command('new-user-registration-expire-check-command')
|
||||
//->dailyAt('23:55') //cief todo: original, to be reverted back to this
|
||||
->everyFifteenMinutes()
|
||||
->withoutOverlapping();
|
||||
// $schedule->command('delete-bulk-download-files-command')
|
||||
// ->hourly()
|
||||
// ->withoutOverlapping();
|
||||
|
||||
$schedule->command('booking-expired-command')
|
||||
->dailyAt('02:00')
|
||||
->withoutOverlapping();
|
||||
// $schedule->command('new-user-registration-expire-check-command')
|
||||
// //->dailyAt('23:55') //cief todo: original, to be reverted back to this
|
||||
// ->everyFifteenMinutes()
|
||||
// ->withoutOverlapping();
|
||||
|
||||
// $schedule->command('booking-expired-command')
|
||||
// ->dailyAt('02:00')
|
||||
// ->withoutOverlapping();
|
||||
//cief todo: disable commands to avoid unintentional interfering with production ends
|
||||
|
||||
// DISABLED BY DEFAULT
|
||||
// $schedule->command('purchase-order-autofill-command')
|
||||
// ->dailyAt('03:00')
|
||||
// ->withoutOverlapping();
|
||||
|
||||
Reference in New Issue
Block a user