2016-04-07 28 views
0

Bir kullanıcı eylemi için, tüm abonelerine e-posta göndermem gerekir. Bu durumda, e-postalar daha sonra göndermek için sıraya alınmalıdır.Laravel Bir kerede birden çok İş Ekleme

Tek bir kullanıcı örneğini bir kerede kabul edebilecek (Laravel Doc izlenen) ve iş tablosuna bir iş ekleyen işler kullandım. Bu iyi.

Artık, abone sayısı daha fazla olduğu için, iş tablosunda aynı anda birden çok kullanıcı örneğini veya işi nasıl ekleyebilirim? Laravel 5.2'de bunu nasıl başarabilirim?

cevap

0

Sorunuzu okuyarak burada bir şey özlemediğimden emin değilim, ancak kendi iş kuyruğunuzu uyguluyorsanız, yapıcıyı değiştirip değiştiremediniz. Ele geçirme yöntemi sadece onlara e-posta gönderen bir foreach çalıştırır? yerine tek bir kullanıcının kullanıcı topluluğu kabul etmek modifiye laravel docs

Örnek:

<?php 


namespace App\Jobs; 

use App\User; 
use App\Jobs\Job; 
use Illuminate\Contracts\Mail\Mailer; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Queue\InteractsWithQueue; 
use Illuminate\Contracts\Queue\ShouldQueue; 

class SendReminderEmail extends Job implements ShouldQueue 
{ 
    use InteractsWithQueue, SerializesModels; 

protected $users = []; 

/** 
* Create a new job instance. 
* 
* @param User $user 
* @return void 
*/ 
public function __construct($users) //Pass in an array of your user objects 
{ 
    $this->users = $users; 
} 

/** 
* Execute the job. 
* 
* @param Mailer $mailer 
* @return void 
*/ 
public function handle(Mailer $mailer) 
{ 
    foreach($users as $currentUser){ 
     $mailer->send('emails.reminder', ['user' => $currentUser], function ($){ 
     //code here 
    }); 

    $currentUser->reminders()->create(...); 
    } 
    } 
} 
+0

teşekkürler. Bu işler, Jobs'ta koleksiyon nesnesinin alınması konusunda biraz kafam karışmıştı. Cevabınız beni temizliyor. – Sovon

+0

Sorun değil! Yardımcı olduğuma sevindim. –

İlgili konular