Wenn ein PHP-Skript Sitzungen verwendet, sperrt PHP die Sitzungsdatei, bis das Skript abgeschlossen ist. Eine Seitenanforderung, die versucht, eine gesperrte Sitzung zu verwenden, wird blockiert, bis die Sitzungsdatei freigegeben wird. PHP tut dies, damit Sitzungen in einem konsistenten Zustand bleiben. Quote from PHP bug #31464:
[2005-01-10 08.13 UTC] derick bei php dot net
Dies ist in der Tat nicht um ein Problem überhaupt, muss die Session Erweiterung die Session-Datei, so dass gleichzeitig sperren Updates können die Datei nicht beschädigen. Dies bedeutet, dass alle Skripte, die die gleiche Sitzungsdatei verwenden, serialisiert sein müssen. Um die Leistung zu verbessern, können Sie http://php.net/session_write_close verwenden, sobald Sie fertig sind Lesen/Einstellen von Sitzungsvariablen, die die Sperre der Datei entfernen wird.
Die einfachste Abhilfe, wie oben und here as well beschrieben ist:
- Anruf
session_start()
- Lese-/Schreib alle Session-Variablen
- Aufruf
session_write_close()
Does langwierige Verarbeitung tun dieses Skript plus t er Seiten, die gesperrte Nutzung Sitzungen bekommen? –
Bis das lange Skript läuft oder bis es fertig ist? – cegfault
@SalmanA Ja, meine Dateien verwenden Sitzungen, ist das Problem? – martincpt