QUEUE_CONNECTION
parametresini kullanacağınız drivera göre güncelleyebilirsiniz. Örnek olarak redis sürücüsüne güncelleme komutu:
QUEUE_CONNECTION=redis
php artisan make:job SendEmailJob
Örnek Job(İş) içeriği
namespace App\Jobs;
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\Mail;
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
public function __construct($user)
{
$this->user = $user;
}
public function handle()
{
Mail::to($this->user->email)->send(new \App\Mail\WelcomeEmail($this->user));
}
}
3. Dispatch Yöntemi ile Yapacağınız İşlemi Job(iş) Sınıfıdan Gönderin:
Job sınıfını oluşturduktan sonra yapacağınız işlemi dispatch yöntemi ile iş sınıfınıza gönderin
$user = User::find(1);
dispatch(new SendEmailJob($user));
4.İşlem Kuyruğunu Dinleme:
Kuyruğa alınmış işleri işlemek için bir kuyruk çalışanı başlatmanız gerekecektir. Laravel, kuyruğu sürekli olarak yoklayan ve kullanılabilir hale geldikçe işleri işleyen bir çalışanı çalıştıran php artisan queue:work komutu da dahil olmak üzere birçok kuyruk çalışanı sağlar.
php artisan queue:work
Queue işlemini başlattıktan sonra işlemlerinizi kontrol edebilirsiniz. Arka planda yaptığınız işlemler sırasıyla sunucunuzu yormadan çalışmaya devam edecektir.
Laravel Queue sayesinde işlemlerinizi sıraya sokup sunucuyu yormadan gerçekleştirebilirsiniz.