From 3291eba66ef0f4ab3b200788d53659975f9d5c4a Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Mon, 10 Mar 2025 11:24:14 +0330 Subject: [PATCH] refactor the job --- .../Commands/SendRoadObservationToNikarayanCommand.php | 9 ++++----- ...istController.php => LogListManagementController.php} | 4 ++-- app/Jobs/SendRoadObservationToNikarayan.php | 7 +++++++ routes/v3.php | 4 ++-- 4 files changed, 15 insertions(+), 9 deletions(-) rename app/Http/Controllers/V3/{LogListController.php => LogListManagementController.php} (95%) diff --git a/app/Console/Commands/SendRoadObservationToNikarayanCommand.php b/app/Console/Commands/SendRoadObservationToNikarayanCommand.php index 224c0acd..e04568bd 100644 --- a/app/Console/Commands/SendRoadObservationToNikarayanCommand.php +++ b/app/Console/Commands/SendRoadObservationToNikarayanCommand.php @@ -32,15 +32,14 @@ class SendRoadObservationToNikarayanCommand extends Command $count = 0; $this->info("Dispatching jobs with a delay between each..."); - DB::transaction(function () use ($count) { + DB::transaction(function () use (&$count) { $delay = 0; RoadObserved::query() ->whereBetween('StartTime_DateTime_fa', ['1403-01-01 00:00:00', '1403-07-13 23:59:59']) - ->where('rms_status', '=', 0) - ->chunkById(50, function ($roads) use ($delay, $count) { + ->chunkById(50, function ($roads) use (&$delay, &$count) { foreach ($roads as $road) { - $road->update(['rms_status' => 1]); - SendRoadObservationToNikarayan::dispatch($road)->delay(now()->addMinutes(10)->addSeconds($delay)); + $road->update(['status' => 1]); + SendRoadObservationToNikarayan::dispatch($road)->delay(now()->addSeconds($delay)); Log::channel('road_observation_problem')->info("Job for Road Observed ID {$road->id} scheduled with a {$delay} seconds delay."); $this->info("Scheduled job for Road ID: {$road->id} {$delay}s"); $delay += 3; diff --git a/app/Http/Controllers/V3/LogListController.php b/app/Http/Controllers/V3/LogListManagementController.php similarity index 95% rename from app/Http/Controllers/V3/LogListController.php rename to app/Http/Controllers/V3/LogListManagementController.php index 7e0bb72a..c351fca6 100644 --- a/app/Http/Controllers/V3/LogListController.php +++ b/app/Http/Controllers/V3/LogListManagementController.php @@ -11,7 +11,7 @@ use App\Models\LogList; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; -class LogListController extends Controller +class LogListManagementController extends Controller { use ApiResponse; @@ -47,7 +47,7 @@ class LogListController extends Controller public function update(UpdateRequest $request, LogList $logList): JsonResponse { - LogList::query()->update([ + $logList->update([ 'description' => $request->description, 'log_unique_code' => $request->log_unique_code, 'action_type' => $request->action_type, diff --git a/app/Jobs/SendRoadObservationToNikarayan.php b/app/Jobs/SendRoadObservationToNikarayan.php index ffb21eab..87cdeb0c 100644 --- a/app/Jobs/SendRoadObservationToNikarayan.php +++ b/app/Jobs/SendRoadObservationToNikarayan.php @@ -15,6 +15,13 @@ class SendRoadObservationToNikarayan implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; + /** + * The number of times the job may be attempted. + * + * @var int + */ + public int $tries = 2; + /** * Create a new job instance. */ diff --git a/routes/v3.php b/routes/v3.php index 8db404f3..380dd3c9 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -20,7 +20,7 @@ use App\Http\Controllers\V3\Dashboard\RoadPatrolProjectController; use App\Http\Controllers\V3\Dashboard\SafetyAndPrivacyController; use App\Http\Controllers\V3\FMSVehicleManagementController; use App\Http\Controllers\V3\Harim\DivarkeshiController; -use App\Http\Controllers\V3\LogListController; +use App\Http\Controllers\V3\LogListManagementController; use App\Http\Controllers\V3\NotificationController; use App\Http\Controllers\V3\PermissionManagementController; use App\Http\Controllers\V3\ProfileController; @@ -321,7 +321,7 @@ Route::prefix('road_observations') Route::prefix('log_list') ->name('logList.') - ->controller(LogListController::class) + ->controller(LogListManagementController::class) ->group(function () { Route::get('/', 'index')->name('index'); Route::get('/list', 'list')->name('list');