İçeriğe geç

Laravel Task Scheduling Nedir ve Kullanımı

Laravel Task Scheduling basitçe görev zamanlama olarak tanımlanabilir. Örnek verecek olursak; haftalık üyelere bildirim, aylık üyelik yenileme ücreti kesme vb. konularda kullanabilirsiniz. Görev zamanlamanın birçok yöntemi vardır.
– Direk App\Console\Kernel.php dosyasında işlem yaptırılabilir.
– Job oluşturulup App\Console\Kernel.php dosyasında işlem yaptırılabilir.
– Command oluşturulup App\Console\Kernel.php dosyasında işlem yaptırılabilir.

Örneğimizde yaygın olarak kullanılan Command yöntemini kullanalım. Daha önceden anlattığım Command makalesine gözatabilirsiniz.

App\Console\Kernel.php dosyasını açın. İşlemleri schedule() metodunda tanımlamanız gerekiyor.
Örnek olarak her hafta üyelere haftalık bülteni gönderelim.

protected function schedule(Schedule $schedule)
{
    $schedule->command('registered:users')
        ->everyWeek();
}

Gördüğünüz gibi haftalık olarak registered:users komutuyla bu işlemi gerçekleştiriyoruz.

Diğer örnekler;

// If you would like to pass a command for the operating system to run you can use exec():
$schedule->exec('php /home/sendmail.php --user=10 --attachInvoice')->monthly();

// You can also pass the parameters as an array:
$schedule->exec('php /home/sendmail.php', [
    '--user=10',
    '--subject' => 'Reminder',
    '--attachInvoice'
])->monthly();

// Passing an artisan command
$schedule->command('mail:send --user=10')->monthly();

// You can also pass the class name:
$schedule->command('App\Console\Commands\EmailCommand', ['user' => 10])->monthly();

// dispatch a job to queue using the Job class name or an actual object:
// Under the hood Laravel will create a callback that calls the dispatch() helper method to dispatch your command.
$schedule->job('App\Jobs\SendOffer')->monthly();
$schedule->job(new SendOffer(10))->monthly();

Localinizde denemeler yapmak için bu iki komutu kullanabilirsiniz.

php artisan schedule:run //1 kere çalışır
php artisan schedule:work //sürekli çalışır

Sunucuda çalıştırmak için ise;

* * * * * php /proje-konumu/artisan schedule:run >> /dev/null 2>&1
Kategori:LaravelLaravel Advanced

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir