Wenn Sie weiterhin den database
Treiber verwenden möchten, würde ich vorschlagen, eine andere Datenbank einzurichten, die alle Ihre Jobs in der Warteschlange und fehlgeschlagene Jobs enthält.
Obwohl es nicht in der Konfiguration oder in der Dokumentation erwähnt wird, sieht es nach einem Blick auf den Code aus, dass Sie in der Lage sein sollten, einen connection
Parameter zu Ihrer Warteschlangenkonfiguration hinzuzufügen, und dann die Warteschlange mit dem interagieren Datenbank, die von dieser Verbindung angegeben wird.
'connections' => [
// your existing connections
'queue' => [
'driver' => 'mysql',
'database' => 'your-queue-database',
// rest of connection information (host, port, etc)
],
],
Dann in Ihren config/queue.php
, informieren Sie Ihre Datenbank-Warteschlange Ihre neue Verbindung zu verwenden:
Also, in Ihren config/database.php
, eine neue Verbindung für Ihre Warteschlangendatenbank definiert
'connections' => [
'database' => [
'driver' => 'database',
'connection' => 'queue', // connection name from database config
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
],
]
Die Eine andere Option wäre, zu einem anderen Warteschlangentreiber zu wechseln. Richten Sie redis, sqs oder beanstalk ein.
hi, danke für die Antwort .. beide funktionieren, aber wenn ich 'redis 'benutze, um den aktuellen ausstehenden Job oder den fehlgeschlagenen Job zu sehen, wie in' Datenbank '. Ich weiß also, ob etwas nicht stimmt oder ein Job nicht wie erwartet funktioniert. Übrigens, ich benutze Laravel-Schmiede für Server-Setup. – martiendt
@martiendt Unabhängig davon, welche Art von Warteschlange Sie verwenden, werden fehlgeschlagene Jobs in der Tabelle "failed_jobs" in Ihrer Datenbank gemeldet, wenn sie die maximale Anzahl der vom Warteschlangen-Worker zugelassenen Versuche überschreiten. – patricus
also, wenn ich redis verwenden möchte, muss ich auch meine Warteschlange Datenbank einrichten? ok danke @patricus ich werde es versuchen – martiendt