Zend Platform Job Queues Details
- Weitere Produkte:
- Zend Core |
- Zend Studio |
- Zend Guard
Die Job Queues-Funktion ist ein Ansatz, die Offline-Verarbeitung von PHP-Skripts zu rationalisieren. Der Job Queue Server ermöglicht eine Umleitung und Verzögerung der Ausführung von PHP-Skripts, die während der Interaktion eines Benutzers mit dem Webserver nicht erforderlich sind. Die Job Queues-Funktion verbessert die Reaktionszeit während interaktiver Websitzungen und nutzt nicht verwendete Ressourcen.
Grundsätzlich kann jeder Server in Ihrem Cluster eine Warteschlange (Queue) in der Funktion eines Auftragscontainers enthalten. Sie können den Status einer Warteschlange, also die Anzahl der erfolgreich abgeschlossenen, der fehlgeschlagenen, der wiederkehrenden, der abhängigen Aufträge usw., einsehen. Außerdem werden auch Statistiken über die Aufträge angezeigt, wie zum Beispiel die durchschnittliche Wartezeit pro Auftrag, die Anzahl der angeforderten Aufträge etc.
Darüber hinaus kann eine Warteschlange vorübergehend eingestellt oder wieder aufgenommen werden, wodurch neu eingegangene Aufträge nicht ausgeführt werden.
Das Hinzufügen eines neuen Auftrags ist einfach und intuitiv und kann über die UI erfolgen. Es ist möglich, die Auftragspriorität, den Anwendungsnamen und die auszuführende Skriptdatei festzulegen. Außerdem können Aufträge von anderen abhängig gemacht und die Zeitplandaten pro Auftrag festgelegt werden. So kann der Auftrag umgehend oder zu einem bestimmten Zeitpunkt in der Zukunft ausgeführt werden. Darüber hinaus kann sich der Auftrag bis zu einer unendlichen Ausführung wiederholen.
Die Job Queues-Funktion bietet eine vollständige programmatische API zur Ausführung aller Funktionen.
So funktioniert die Job Queues-Funktion:
Sobald die Job Queues-Funktion aktiviert wird, wird auf jedem Server im Cluster der Daemon der Job Queues-Funktion ausgeführt. Der Daemon der Job Queues-Funktion fungiert als Ausführungseinheit hinter der Job Queues-Funktion. Wenn ein neuer Auftrag zu einer Warteschlange hinzugefügt wird, werden seine Attribute (Name, Priorität, Anwendungs-ID etc.) sowie seine Abhängigkeit und seine Zeitplandaten in der Zend Platform-Datenbank gespeichert. Jeder Auftrag wird außerdem in die Warteschlange eingefügt, die als logischer Container für die Aufträge dient. Der Daemon der Job Queues-Funktion ist für die Statusaktualisierung eines jeden Auftrags und die Überprüfung des tatsächlichen Status auf eventuell erforderliche zusätzliche Operationen, wie die Auftragsausführung, zuständig. Wenn beispielsweise ein Auftragsplanzeitpunkt erreicht oder die Abhängigkeitsbedingung eines Auftrags erfüllt wird (z. B. durch den erfolgreichen Abschluss der Ausführung eines anderen Auftrags), führt der Daemon den Auftrag, d. h. das mit dem Auftrag verknüpfte PHP-Skript, aus. Außerdem nimmt er die Ausgabe aus der Auftragsausführung auf. Die Möglichkeit, Aufträge und Warteschlangen aus dem gesamten Cluster zu konfigurieren, ist der Fähigkeit des Daemons der Job Queues-Funktion zur beidseitigen Kommunikation mit der Job Queues-UI, die sich auf dem Zentralserver befindet, zu verdanken.
White Paper: Scalability and Responsiveness with Zend Platform's Job Queue




