Synchrone Dateizugriffe steuern
Sandra
- php
Hallo Zusammen
Es geht um folgendes: Es dürfen übers Internet Jacken bestellt werden. Die ersten zehn Besteller bekommen gratis ein Velo dazu. Da ich keine Datenbank einsetzen darf, beschränke ich mich auf Dateien. D.h. ich halte in einer Datei fest, wie viele Jacken schon bestellt wurden und nach 10 gibts kein Velo mehr gratis dazu. Nun meine Frage, wie gehe ich mit synchronen Zugriffen auf die Datei um? Was passiert wenn zwei Benutzer gleichzeitig auf den Bestellenknopf klicken. Wie kann ich das steuern?
Danke schon jetzt für euere Antworten!
Gruss Sandra
Hi,
Nun meine Frage, wie gehe ich mit synchronen Zugriffen auf die Datei um?
meinst Du wirklich synchron, oder doch eher parallel?
Was passiert wenn zwei Benutzer gleichzeitig auf den Bestellenknopf klicken.
Dann hast Du im Zweifel parallele Dateizugriffe. Entweder Du setzt einen File-Locking-Mechanismus ein, oder Du beschränkst Dich auf atomare Zugriffe - beispielsweise anhängendes Schreiben.
Cheatah
Hello,
Dann hast Du im Zweifel parallele Dateizugriffe. Entweder Du setzt einen File-Locking-Mechanismus ein, oder Du beschränkst Dich auf atomare Zugriffe - beispielsweise anhängendes Schreiben.
Das hängt aber vom regelwerk ab:
Ist das Eintreffen der Eintragung beim Server interessant oder
ist das Abfordern des Eintgragungsformulares der kritische Zeitpunkt?
Man will ja langsamere Schreiber nicht unbedingt benachteiligen - oder? *gg*
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hi
meinst Du wirklich synchron, oder doch eher parallel?
Ja ich meine wohl eher parallel :)
Dann hast Du im Zweifel parallele Dateizugriffe. Entweder Du
»»setzt einen File-Locking-Mechanismus ein, oder Du beschränkst Dich
»»auf atomare Zugriffe - beispielsweise anhängendes Schreiben.
Das würde wohl mit flock() geschehen. Reicht den das?
Danke und Gruss
Sandra
Hello,
Das würde wohl mit flock() geschehen. Reicht den das?
Kommt darauf an, wie Du es gestaltest.
flock() ist advisory und nicht mandatory. Das bedeutet, dass sich _jedes_ Script, dass Zugang zu den betroffenen Dateien hat, an die Regeln halten sollte, aber eben leider nicht muss.
Und wenn man die Regelkn dann auch noch in der falschen Reihenfolge berücksichtigt, hat es überhaupt keinen Sinn.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hi Tom
flock() ist advisory und nicht mandatory. Das bedeutet, dass sich _jedes_ Script, dass Zugang zu den betroffenen Dateien hat, an die Regeln halten sollte, aber eben leider nicht muss.
Was für Regeln meinst du? Ich weiss einfach nicht, ob dies reicht, damit keine unerwünschten Dinge geschehen wenn viele Benutzer auf die Daten zugreifen.
Danke für deine Antwort!
Gruss Sandra
Hello,
flock() ist advisory und nicht mandatory. Das bedeutet, dass sich _jedes_ Script, dass Zugang zu den betroffenen Dateien hat, an die Regeln halten sollte, aber eben leider nicht muss.
Was für Regeln meinst du? Ich weiss einfach nicht, ob dies reicht, damit keine unerwünschten Dinge geschehen wenn viele Benutzer auf die Daten zugreifen.
schau mal unter http://selfhtml.bitworks.de/artikel_locking/artikel/artikel.htm
Da steht ein angefangener Artikel zum Thema. Irgendwann mache ich ihn auch mal fertig.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hello Tom
schau mal unter http://selfhtml.bitworks.de/artikel_locking/artikel/artikel.htm
Da steht ein angefangener Artikel zum Thema. Irgendwann mache ich ihn auch mal fertig.
Super Artikel. Besten Dank! Jetzt ist alles klar.
Grüsse Sandra