Laravel Tinker’da Job Dispatch Etmek veya Laravel Tinker Neden Job’ları Dispatch Etmiyor?

Emre Deligöz
2 min readAug 26, 2022

--

Bu makale ben (Yunus Emre Deligöz) ve Turan Karatuğ tarafından yazılmıştır. İngilizce dilinde ve ayrıca blogum üzerinde okunabilir.

Uzun Lafın Kısası

Dispatch komutundan hemen sonra, sadece, ;1 eklemeniz yeterli.

SendEmailJob::dispatch();1;

Laravel Tinker üzerinden Job’ları Dispatch Etmek

Laravel Artisan Tinker üzerinde kuyruğa bir Job göndermek istiyorsanız, Tinker’ı açıp şöyle yazarsınız:

SendEmailJob::dispatch();

Ve Job’un aslında kuyruğa gönderilmediğini farkedersiniz. Komutu yeniden çalıştırırsanız aynı yanıtı görürsünüz ancak Job kuyruğa yalnızca bir kez gönderilmiştir.

Laravel Tinker Job’u Neden İlk Seferde Dispatch Etmedi?

Buradaki sorun Laravel Tinker’in oluşturulan PendingDispatch nesnelerini kullanıcının sonraki komutlarda kullanması için bellekte tutmasıdır. PendingDispatch nesnesi yok edildiğinde Job dispatch edilir.

Bu konudaki tartışmalar için Laravel Tinker Repo’suna göz atabilirsiniz.

Çözüm

Bu problemi en doğru şekilde çözmek için Job’u Laravel’in Dispatcher sınıfı üzerinden gönderebilirsiniz:

app(\Illuminate\Contracts\Bus\Dispatcher::class)->dispatch(new SendEmailJob());

Hızlıca çözmek içinse:

SendEmailJob::dispatch();1

Komutun sonuna ;1 eklediğinizde, Tinker PendingDispatch nesnelerini bellekte tutmayacak ve bu da Job'ların hemen dispatch edilmesini sağlayacaktır.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Emre Deligöz
Emre Deligöz

No responses yet

Write a response