2016-07-18 9 views
1

Ich möchte einige Aufgaben in PHP 5.5 und Laravel asynchron ausführen. Ich habe gegoogelt und herausgefunden, dass die Laravel-Warteschlange so etwas tun kann. Ich habe diesen Link für Hilfe gefunden: https://laravel.com/docs/5.1/queues. Ich habe installiert die Abhängigkeiten:Ich kann keine asynchronen Jobs in Laravel-Warteschlange

Amazon SQS: aws/aws-sdk-php ~ 3.0

Beanstalkd: pda/pheanstalk ~ 3.0

IronMQ: Eisen-io/iron_mq ~ 2.0 | ~ 4.0

Redis: Predis/Predis ~ 1,0

und ich habe die Warteschlange Tabellen in laravel.Here hinzugefügt ist mein Job Klasse

class SearchFromSource extends Job implements SelfHandling{ 
    use InteractsWithQueue, SerializesModels; 
    private $provider; 
    private $query; 
    private $pageToken; 
    private $parameters; 
    private $needDetails; 

    public function __construct() 
    { 
    } 

    public function handle() 
    { 
     sleep(5); 
    } 
} 

und hier ist, wo ich den Job versenden:

class SearchController extends Controller{ 
    ... 
    public function prepareResults($query, $page, $ip){ 
     $job = (new SearchFromSource($curVideoProvider,$this->query,$curVideoProvider->getDefaultParameters(),$curPageToken,$curVideoProvider->needDetails()))->onQueue("q1"); 
     $this->dispatch($job); 
     $job2 = (new SearchFromSource($curVideoProvider,$this->query,$curVideoProvider->getDefaultParameters(),$curPageToken,$curVideoProvider->needDetails()))->onQueue("q2"); 
     $this->dispatch($job2); 
    } 

} 

Das Problem ist, dass der Laravel nicht die Arbeitsplätze asynchron läuft. Was ist das Problem.

Antwort

1
  1. Zuerst müssen Sie definieren einen QUEUE_DRIVER (sync, redis, bohnenstange usw.) in Sie
  2. Datei .env Dann müssen Sie aa Warteschlange Zuhörer haben Sie php artisan queue:listen laufen laufen innerhalb Sie Verzeichnis-Projekt
  3. Ihre Aufgabe sollte Implement shouldQueue Schnittstelle
+0

Ich arbeite immer noch nicht. wenn ich php artisan queue laufen lasse: höre zu und sende den job es zeigt nichts im terminal – Alireza

+0

hexe warteschlangentreiber verwendest du? – Tsirigotis

+0

Ich habe Sync, Datenbank und Redis aber es macht keinen Unterschied – Alireza

Verwandte Themen