BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- PHP Skript Aufruf beschränken (http://www.black-board.net/thread.php?threadid=23968)


Geschrieben von 127.0.0.1 am 05.10.2012 um 07:42:

  Skript Aufruf beschränken

Morgen die Damen und Herren,

weiß jemand wie ich ein bestimmtes PHP-Skript auf einem Webserver mit der Anzahl der Aufrufe beschränken kann. Ich will das nur maximal zwei Benutzer das Skript zur selben Zeit ausführen dürfen. Kann ich sowas über den Apache konfigurieren? Wer hat einen Tipp?
Die Skripte erzeugen hohen Traffic daher brauche ich so eine Funktion zu Sicherheit.



Geschrieben von Misel am 06.10.2012 um 11:38:

 

Über den Apache geht das meines Wissens nicht. Aber Du kannst Dir in dem PHP-Script selbst mit sogenannten Semaphoren behelfen.

http://php.net/manual/en/book.sem.php

Ich geb allerdings zu, dass ich das selbst noch nie in PHP ausprobiert habe.



Geschrieben von LX am 09.10.2012 um 23:59:

Achtung

Ansonsten kann man das einigermaßen pragmatisch per Hand bauen mit Lock-Dateien. Jede Skriptinstanz legt in einem festgelegten Verzeichnis eine Datei an. Wenn in dem Verzeichnis bereits zwei Dateien liegen, beendet sich das Skript sofort. Wenn ein Skript terminiert, muss natürlich auch seine Lock-Datei wieder aufgeräumt werden, damit später ein neuer Aufruf passieren kann.

Das ganze kann aber natürlich zu Problemen führen, wenn die Skripte nicht ordnungsgemäß terminieren, beispielsweise weil sie in Endlosschleifen laufen, weil sie abstürzen oder von außerhalb abgeschossen werden. Daher empfiehlt es sich, diese Lock-Dateien auch noch zeitlich zu begrenzen. Wenn ein durchschnittlicher Skriptdurchlauf beispielsweise erfahrungsgemäß 1 Minute dauert, könntest du noch einrichten, dass bestehende Lock-Dateien gelöscht werden, wenn sie älter als 2 Minuten sind.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH