Veröffentlichungsdatum: 05. Februar 2021
Änderungsdatum: 11. Februar 2021
weblication cms wconf asynchrone asynchronous requests aufrufe serverinformationen
Weblication® CMS nutzt an diversen Stellen asynchrone Aufrufe, um (weitere) Vorgänge anzustossen.
Um Vorgänge unabhängig vom aktuellen Aufruf im Hintergrund laufen zu lassen, sind asynchrone Aufrufe das Mittel der Wahl. Solche asynchronen HTTP-Aufrufe (via GET) müssen vom Webserver unterstützt werden (siehe hierzu Abfrage von "Asynchronous Requests" in den Weblication® CMS Serverinformationen) und erfordert je nach CMS-Version ggf. andere Einstellungen.
Vorgänge und Funktionen, bei denen in Weblication® CMS asynchrone Aufrufe standardmäßig verwendet werden sind u.a.:
Hintergrund für die Nutzung eines asynchronen Aufrufes ist in der Regel, daß beim Ausführen einer Aktion (z.B. Seite speichern) die weitere Aktion (z.B. Projektcache löschen) losgelöst von der ersten Aktion abgearbeitet wird. Im Beispiel muß der Seite speichern Vorgang bei asynchronem Aufruf zum Löschen des Projektcache auf diesen Vorgang nicht warten. Ohne asynchronen Aufruf kann der Vorgang des Speicherns erst abgeschlossen werden, wenn die andere Aktion auch beendet ist.
Sofern ein Webserver solche Requests nicht unterstützt, gibt es unterschiedliche Möglichkeiten darauf einzugehen (auch abhängig von der CMS-Version). Über die PHP Framework-Funktion "wNet::getUrlAsync" (siehe weiterführende Links am Artikelende) können Sie übrigens prüfen, inwieweit asynchrone Aufrufe auf dem Webserver funktionieren. Wichtig ist hierbei auch, ob die GET-Aufrufe über socket oder curl gehen, worauf nachfolgend auch eingegangen wird.
Unterstützt ein Webserver asynchrone Aufrufe generell nicht oder soll erstmal schnell die anzustossende Aktion ermöglicht werden, kann manuell in den Weblication® Systemeintellungen der asynchrone Aufruf deaktiviert werden.
Setzen Sie hierzu den Wert des allowAsync-Attributes innerhalb des wUserAgent-Tags auf den Wert "0".
Sofern das Tag in der default.wConf.php noch nicht vorhanden sein sollte, setzen Sie dies XML-Konform.
Speichern Sie die Konfigurationsdatei UTF-8 kodiert ab.
<wConf version="15"> ... <wUserAgent allowAsync="0" /> ... </wConf>
Dies kann als Administrator eingeloggt ab CMS-Version 12 auch durch folgenden Aufruf über die lizenzierte Domain automatisch gesetzt werden:
https://[lizenzierte-Domain]/weblication/grid5/scripts/wSystem.php?action=setConfValue&element=/wConf/wUserAgent&attribute=allowAsync&value=0
Ab CMS-Version 14 werden asynchrone Aufrufe bereits im Standard über curl (curl_multi_exec) abgewickelt.
Ausnahme:
https://[lizenzierte-Domain]/weblication/grid5/scripts/wSystem.php?action=setConfValue&element=/wConf/wUserAgent&attribute=allowAsync&value=2
Ab CMS-Version 13 (013.004.051.029) besteht die Möglichkeit, die Art des Aufrufes zu beeinflussen, anstatt generell die asynchronen Aufrufe zu deaktivieren.
Bezogen auf das Quelltextbeispiel zur default.wConf.php oben sind folgende Einstellungen/Werte möglich: