2016-04-07 11 views
0

Für eine Benutzeraktion muss ich E-Mail an alle seine Abonnenten senden. In diesem Fall sollten die E-Mails in die Warteschlange gestellt werden, um sie später zu senden.Laravel mehrere Jobs gleichzeitig hinzufügen

Ich habe Jobs für das, die einzelne Benutzerinstanz auf einmal akzeptieren können (gefolgt Laravel Doc) und es fügt einen Job in Job-Tabelle. Das ist in Ordnung.

Jetzt, da die Anzahl der Abonnenten mehr als eins ist, wie kann ich mehrere Benutzerinstanzen oder Jobs gleichzeitig in der Jobtabelle hinzufügen? Wie kann ich das in Laravel 5.2 erreichen?

Antwort

0

Ich bin nicht sicher, ob ich etwas hier durch das Lesen Ihrer Frage vermisse, aber wenn Sie Ihre eigene Jobwarteschlange implementieren, können Sie nicht einfach den Konstruktor ändern, um eine Sammlung (Array) von Benutzern statt und in der Handle-Methode einfach eine Foreach ausführen, die sie per E-Mail senden würde?

<?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

Danke: statt einzelner Benutzer

Beispiel in Laravel docs modifiziert, um eine Sammlung von Benutzern zu akzeptieren. Das funktioniert, ich war etwas verwirrt darüber, dass ich ein Sammelobjekt in Jobs bekomme. Deine Antwort löscht mich aus. – Sovon

+0

Kein Problem! Froh, dass ich helfen konnte. –

Verwandte Themen