Dispatching jobs via commands in Laravel

Make a job php artisan make:job SendBirthdayWishes Modify app/Jobs/SendBirthdayWishes.php to send birthday wishes. namespace App\Jobs; use App\Models\User; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldBeUnique; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; class SendBirthdayWishes implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Execute the job. */ public function handle(): void { $today = now()->format('m-d'); // Get today's month and day // Get users whose birthday is today $users = User::whereRaw("DATE_FORMAT(birthday, '%m-%d') = ?", [$today])->get(); foreach ($users as $user) { Log::info("Happy Birthday {$user->name}!"); // You can also send an email // Mail::to($user->email)->send(new HappyBirthdayMail($user)); } } } Dispatch the Job Using Tinker php artisan tinker dispatch(new App\Jobs\SendBirthdayWishes)

Mar 24, 2025 - 07:12
 0
Dispatching jobs via commands in Laravel

Make a job

php artisan make:job SendBirthdayWishes

Modify app/Jobs/SendBirthdayWishes.php to send birthday wishes.

namespace App\Jobs;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;

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

    /**
     * Execute the job.
     */
    public function handle(): void
    {
        $today = now()->format('m-d'); // Get today's month and day

        // Get users whose birthday is today
        $users = User::whereRaw("DATE_FORMAT(birthday, '%m-%d') = ?", [$today])->get();

        foreach ($users as $user) {
            Log::info("Happy Birthday {$user->name}!");

            // You can also send an email
            // Mail::to($user->email)->send(new HappyBirthdayMail($user));
        }
    }
}

Dispatch the Job Using Tinker

php artisan tinker
dispatch(new App\Jobs\SendBirthdayWishes)