2016-03-24 5 views
1

Ich versuche, E-Mails in laravel 5.1 mit queues zu senden. Wenn hören laufenden Warteschlangenbefehl auf dem Terminal,Queueable-App Einstellung nicht gefunden für ID-Fehler in Laravel

php artisan queue:listen 

Displays unter Fehler an der Klemme,

[Illuminate\Contracts\Queue\EntityNotFoundException] 
Queueable entity [App\Setting] not found for ID []. 

Werte von jobs Tabelle nicht Prozess. Irgendeine Idee ?

Wie kann ich meine Warteschlange bearbeiten?

Antwort

1

Ich weiß, dass diese Frage ein paar Monate alt ist, aber ich möchte eine Beobachtung von mir hinzufügen, während ich auf dieselbe Fehlermeldung stoße. Dies liegt daran, dass der EventListener (Schnittstelle von ShouldQueue in diesem Beispiel für asynchron) eine abhängige Variable nicht korrekt auflösen kann (außerhalb des Bereichs oder nicht im Bereich des Event-Objekts enthalten, das durch die Handle-Methode (Event $ event) von EventListener übergeben wurde) .

Für mich dieser Fehler wurde gefeuert, als ich meinen Code innerhalb des __construct Blockes innerhalb des Eventlistener setzen:

public function __construct(Event $event) 
    { 
     $localProperty = $event->property 

     Mail::queue(etc...); 
    } 

    public function handle() 
    { 
     // Yeah I left this blank... whoops 
    } 

Stattdessen wird der Griff() -Methode des Eventlistener nimmt eine Event-Schnittstelle und wenn Prozesse genannt den Auftrag in der Warteschlange:

in Veranstaltung:

public function __construct(Object $ticket, AnotherObject $user) 
    { 
     $this->ticket = $ticket; 
     $this->user  = $user; 
    } 

Und in dem Ereignisse Listener

class SomeEventListener implements ShouldQueue 
    { 
     use InteractsWithQueue; 
     use SerializesModels; 

     public function __construct() 
     { 
      // Leave me blank! 
     } 

     public function handle(Event $event) 
     { 
      $someArray = [ 
       'ticket' = $event->ticket, 
       'user' = $event->user, 
      ]; 

      Mail::queue('some.view', $someArray, function($email) use ($someArray) { 
       // Do your code here 
      }); 
     } 

    } 

Obwohl ein bisschen spät, ich hoffe, das hilft jemandem. Warteschlangen ähneln den Ereignissen (mit der Ausnahme, dass Jobs die Hauptantriebskraft für Warteschlangen ist), daher sollte das meiste relevant sein.

1

Es stellte sich heraus, dass es war, weil ein Modell der Warteschlange hinzugefügt wurde, die seitdem gelöscht wurde.

Verwandte Themen