Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Cron-Jobs oder PHP-Scheduler

Ich denke, Ihr Konzept muss geändert werden.

PHP kann keinen Job planen, MySQL auch nicht. Trigger in MySQL werden ausgeführt, wenn eine MySQL-Abfrage erfolgt, nicht zu einem bestimmten Zeitpunkt. Weder noch

Diese Einschränkung ist normalerweise kein Problem in der Webentwicklung. Der Grund dafür ist, dass Ihre PHP-Anwendung alle ein- und ausgehenden Daten kontrollieren sollte. Normalerweise bedeutet dies nur den HTML-Code, der diese Daten oder andere Formate für Benutzer oder andere Programme anzeigt.

In deinem Fall kannst du es dir so vorstellen. Die Frist ist ein festgelegtes Datum. Sie können sie als Daten behandeln und in Ihrer Datenbank speichern. Beim Eintreten der Frist kommt es nicht darauf an, dass die von Ihnen übermittelten Daten in Ihrer Datenbank korrekt angezeigt werden.

Wenn eine Anfrage zu Ihrer Bewerbung gestellt wird, überprüfen Sie, ob das Datum der Frist in der Vergangenheit liegt, wenn ja, dann zeigen Sie an, dass das Projekt abgeschlossen ist – oder aktualisieren Sie, dass das Projekt abgeschlossen ist, kurz vor der Anzeige.

Es gibt wirklich keinen Grund, Daten unabhängig von Ihrer PHP-Anwendung zu aktualisieren.

Normalerweise möchten Sie nur Jobs planen, die Ihre Anwendung in Bezug auf die Auslastung beeinträchtigen würden oder die nur einmal ausgeführt werden müssen oder bei denen Parallelität oder Zeit ein Problem darstellen.

In Ihrem Fall trifft nichts davon zu.

PS:Ich habe PHPscheduler nicht ausprobiert, aber ich kann mir vorstellen, dass es kein echter Scheduler ist. Cron ist ein Dämon, der schläft, bis eine bestimmte Aufgabe in seiner Warteschlange fällig ist, die Aufgabe ausführt und dann schläft, bis die nächste fällig ist (zumindest tut er das im aktuellen Algorithmus). PHP kann das nicht ohne die Sockets und Fork-Erweiterungen als spezielles Setup. Daher überprüft PHPscheduler höchstwahrscheinlich nur, ob ein Datum für eine Aufgabe abgelaufen ist, und zwar bei jedem Laden einer Webseite (immer wenn PHP eine Seite ausführt). Dies ist nicht anders, als wenn Sie einfach prüfen, ob das Datum des Projekts abgelaufen ist, ohne den Overhead von PHPScheduler.