2017-06-14 9 views
0

Ich benutze derzeit Laravel's Queue, um einen Job zu verarbeiten. Ich muss diesen Job irgendwann freigeben, aber er läuft sofort, selbst wenn ich release() implementiert habe. Ist das ein Fehler von Laravel oder habe ich etwas übersehen?Manuelles Freigeben des Jobs schlägt in Laravel fehl

public function handle() 
{ 
    $this->release(120); 

    var_dump('Hello World!!'); ---> This was displayed right after I called the Job 

} 

Auch ist QUEUE_DRIVER auf RabbitMQ gesetzt

Antwort

0

Ich glaube nicht, Release ist das, was Sie wollen. Release ist, dass nach 120 Sekunden wieder in die Warteschlange gestellt wird.

Wenn Sie möchten, dass es für mindestens 120 Sekunden in der Warteschlange ist, können Sie die verzögerte Disposition verwenden. https://laravel.com/docs/5.4/queues#delayed-dispatching

Zum Vergleich:

$job = (new MyJob())->delay(Carbon::now()->addMinutes(2)); 
dispatch($job); 
Verwandte Themen