Heim >Backend-Entwicklung >PHP-Tutorial >Laravel5.2, sollte ich für geplante Aufgaben die Crontab des Dienstes oder die Warteschlange verwenden?
Fügen Sie beispielsweise eine Reihe von Aktivitäten mit einer Startzeit hinzu und versetzen Sie sie dann automatisch in den Startstatus, wenn die Startzeit erreicht ist, und in den Endstatus, wenn sie endet.
Sollten wir außerdem die Datenbank abfragen oder in Redis einfügen?
Fügen Sie beispielsweise eine Reihe von Aktivitäten mit einer Startzeit hinzu und versetzen Sie sie dann automatisch in den Startstatus, wenn sie die Startzeit erreicht, und in den Endstatus, wenn sie endet.
Sollten wir außerdem die Datenbank abfragen oder in Redis einfügen?
Genau genommen dient die Warteschlange nur zum Senden von Nachrichten, nicht für Aufgaben (obwohl dies auch durch Delayqueue erreicht werden kann), aber am besten ist die Verwendung von Crontab
Die Start- und Endzeit der Aktivität kann direkt im Code bestimmt werden. Wenn Ihr Geschäftsszenario anders ist, ist es am besten, einen Hintergrund zu haben, um die Start- und Endzeit dieser Aktivitätsreihe zu steuern Es wird jedoch empfohlen, Crontab zu verwenden, da dies einfach und direkt ist
Was das Abfragen von Daten betrifft, ist mein persönlicher Vorschlag, die Datenbank zu speichern, Redis abzufragen und gleichzeitig zu aktualisieren
Das Abfragen der Datenbank ist langsam und die Parallelität ist gering
Wenn viele Online-Aktivitäten gleichzeitig stattfinden und eine bestimmte Anzahl von Parallelitäten besteht, sollte eine Cache-Vorbereitung durchgeführt werden, um zu verhindern, dass die Datenbank hängen bleibt.