In Laravel im Hintergrund laufen, ich bin wie diese im Hintergrund ausgeführt werden solltePrevent ein Job, in Code aufgerufen, überlappend mit Job in Laravel
Artisan::queue('mediaserver:process-queue', ['index' => $indexName]);
gleiche Arbeit einen Job in meinem Code ausgeführt wird jeder Stunde. Manchmal möchte ich es über meine Benutzeroberfläche (also über Code) auslösen, um Dinge zu befestigen. Was ich verhindern muss ist, dass der Prozess startet, während er immer im Hintergrund läuft.
Was ist die beste Arbeitsmethode dafür?
Sie werden nicht in der Lage sein, die Warteschlange für den Job zu überprüfen. Verwenden Sie stattdessen eine Tabelle "running_jobs", in die eine Zeile mit eindeutigen Informationen eingefügt wird, z. B. eine Spalte mit der Jobklasse. Achten Sie auf Jobs, die versendet werden, und lassen Sie sie die Zeile erstellen. Wenn Jobs beendet sind, lassen Sie sie die Zeile löschen. Überprüfen Sie das Vorhandensein der Zeile, bevor Sie den Job absetzen. – Ohgodwhy