php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.08.2009, 09:39  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard System-Update während des Betriebs?

Hallo.

Wir setzen im Intranet ein System auf PHP-Basis ein, mit dem etwa 10 Personen gleichzeitig arbeiten.

Zu Beginn war noch alles relativ überschaubar. Das Update eines Skriptes konnte innerhalb von wenigen Sekunden durchgeführt werden, da man die Benutzer persönlich darüber informieren konnte. ("Hände weg, wir machen ein Update!")

Mittlerweile ist das System aber ziemlich groß und das Durchführen von Update ist kein geringer Aufwand mehr.
90% aller Updates finden deshalb während des Feierabends statt, doch kommt es halt vor, dass ein Update umgehend durchgeführt werden muss.

Das Problem ist nun, dass in dieser Zeit niemand mit dem System arbeiten darf, aber die Benachrichtigung der Benutzer ("Hände weg") aber zu lange dauern würde.

Wir haben den Vorteil(?), dass alle Aufrufe über eine zentrale PHP-Datei laufen. D.h. man könnte beim Aufruf dieses Skriptes einfach einen Text anzeigen, das auf eine Wartung hinweist und das Skript in ein die() laufen lassen.

Allerdings darf das nicht zu einem Zeitpunkte sein, wenn ein Benutzer gerade ein Formular mit Daten abschicken will, da die Daten ja dann verloren wären.
Der Text dürfte also nur angezeigt werden, wenn alle Skripte durchgelaufen sind und ein Aufruf der "Zentral-Datei" bedeuten würde, dass ein Benutzer einen neuen Prozess starten will.

Gibt es sowas wie ein "Verfahren" für solche Fälle? Oder hat jemand eine Idee, wie man ein solches "Wartungsfenster" realisieren könnte?

Danke im Voraus.

cya

P.S.:
Ja, ich weiß, dass wir uns damals schon hätten Gedanken darüber machen sollen. Allerdings hat niemand damit gerechnet, dass wir irgendwann ein System mit 80.000 Zeilen haben werden.
vollkommenegal ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.08.2009, 09:46  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Hi,

nur eine Idee, aber du könntest doch auf einer Seite, auf der sich keine Formulare sondern nur Informationen befinden (z.B. die Startseite? ), eine Session setzen wenn der Zugang gesperrt werden soll. Wenn diese Variable gesetzt ist, können danach auch keine anderen Seiten mehr aufgerufen werden!

Dann kann jeder noch in Ruhe sein Formular absenden und wenn er dann danach auf die entsprechende(n) Seite(n) weitergeleitet wird, könnte die Session zum Sperren gesetzt werden. Danach ist dann erstmal Sense!

Gruß
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 03.08.2009, 09:54  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Wenn ich Dich richtig verstehe, müsste jedes Skript dahingehend angepasst werden, dass es nach dem Durchlauf zur Startseite weitergeleitet wird?!

Das ist suboptimal, denn das "Ursprungsskript" muss ja noch Informationen anzeigen, wie bspw. die positive/negative Bestätigung, dass eine Buchung durchgeführt wurde o.ä.

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 03.08.2009, 09:58  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von vollkommenegal Beitrag anzeigen
Wenn ich Dich richtig verstehe, müsste jedes Skript dahingehend angepasst werden, dass es nach dem Durchlauf zur Startseite weitergeleitet wird?!
Nein, natürlich nicht. Jedoch muss in irgendeiner Form sichergestellt werden, dass der User auf eine Seite kommt, wo diese Variable gesetzt werden kann. Daher sollte man, wenn man Wartungsarbeiten durchführt, die Sperrung 10-15 Minuten vor der Wartung veranlassen, um sicherzustellen, dass kein Zugriff mehr erfolgen kann!
Nicht jede Seite muss diese Variable setzen und nicht jede Seite muss automatisch auf eine Seite weiterleiten, wo die Sperrung durchgeführt wird.

Aber du hast Recht, ganz sicher ist das ganze nicht! Es fiel mir nur spontan zu deinem Probem ein!

Gruß
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Alt 03.08.2009, 10:13  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Zitat:
Zitat von Asipak Beitrag anzeigen
die Sperrung 10-15 Minuten vor der Wartung veranlassen, um sicherzustellen, dass kein Zugriff mehr erfolgen kann!
Ich denke, dass dies ein wichtiger Punkt ist. Wie stellt man sicher, dass jeder "fertig" ist. Datenverlust ist natürlich nicht akzeptabel.
Idealerweise bekomme ich als Supporter/Admin sogar eine Nachricht, dass die Benutzer ihre Arbeit abgeschlossen haben. Damit müsste man nicht zwangsweise 10 Minuten rumsitzen, sondern könnte sofort anfangen und den Wartungszeitraum auf ein Minimum beschränken.

Wenn man sich auf die Benutzer verlassen könnte, würde es ausreichen, ein Info-Fenster aufpoppen zu lassen und die Benutzer dazu aufzufordern, eine bestimmte Seite aufzurufen, um zu signalisieren, dass die Wartung beginnen kann.
Aber der berühmte DAU macht einem hier sicher einen Strich durch die Rechnung.

Zitat:
Zitat von Asipak Beitrag anzeigen
Es fiel mir nur spontan zu deinem Probem ein!
Ist völlig okay. Nur durch Meinungen ergeben sich Ideen und daraus Diskussionen, die zu Lösungen führen.

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 03.08.2009, 10:15  
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse:
Anfänger
cetalian sorgt für eine eindrucksvolle Atmosphärecetalian sorgt für eine eindrucksvolle Atmosphäre
Standard

Wie wäre es mit einem Nachrichtenfenster über dem Programm, dass in Rot sagt "Wartung in 5:00 Minuten, bitte beenden Sie Ihre Arbeit und loggen Sie sich aus!" (kann man ja per Config-Datei oder so Scriptweit einblenden) und dann in 5 Minuten lässt du die zentrale PHP Datei sperren?
cetalian ist offline   Mit Zitat antworten
Alt 03.08.2009, 10:33  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Das hatte ich ja bereits geschrieben.

Das Problem dabei ist, dass es immer wieder User gibt, die sowas ignorieren, überlesen oder was auch immer.

Nein, die Sperrung müsste absolut sicher sein.

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 03.08.2009, 10:39  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Absolut sicher wirst du bestimmt nicht hinbekommen. Stell dir vor jemand öffnet ein Formular, verlässt aber anschließend die Seite. Du kannst von deiner Seite aus nicht nachprüfen ob der User jetzt noch eintippt oder ob er nicht mehr da ist. Also musst du es mit einem Timeout machen. Daher kommt es zwangsläufig dazu dass du theoretisch bestimmte User abschneidest.
Flor1an ist offline   Mit Zitat antworten
Alt 03.08.2009, 10:45  
Erfahrener Benutzer
 
Registriert seit: 27.08.2004
Beiträge: 239
vollkommenegal
Standard

Ich überlege gerade, ob ich anhand der Daten, die in $_POST stehen, erkennen kann, ob jemand gerade ein Formular abgeschickt hat.
Wenn ja: Skript durchlaufen lassen
Wenn nein: Skript in ein die() laufen lassen

Die Gefahr hierbei wäre allerdings, dass im "ja"-Fall der Benutzer ein Skript ausführt, das für ein Update vorgesehen ist. Dann würde es auch "knallen"...auch wenn die Wahrscheinlichkeit sehr gering wäre.

*denk*

cya
vollkommenegal ist offline   Mit Zitat antworten
Alt 03.08.2009, 10:49  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.071
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Wo besteht denn genau das Problem, wenn das Formular nicht mehr verarbeitet wird und stattdessen eine Meldung über Wartungsarbeiten erscheint. Dann hat der jeweilie User eben Pech gehabt, wenn er die Ankündigung "In 5 Minuten Wartungsarbeiten" ignoriert und stattdessen lieber noch ein paar Daten eingeben möchte. Da kann doch erstmal nichts kaputt gehen. Er muss die Daten dann eben nochmal eintragen.

Gruß
__________________
HalloPHP
Asipak ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] UPDATE wird trotz if clause vor SELECT ausgeführt Slithers Datenbanken 2 10.06.2009 16:13
Fehler beim kompilieren von php 5.2.9 malio Server, Hosting und Workstations 11 05.06.2009 18:40
Insert ... On duplicate key update Jacke Datenbanken 2 08.04.2009 14:11
Update funktion david1985 PHP Tipps 2009 7 28.03.2009 03:20
[Erledigt] MY SQL Update will nicht feeet PHP Tipps 2008 5 30.10.2008 13:57
system() flush und Safari webbi PHP-Fortgeschrittene 6 07.07.2008 21:30
Update / syntaxfehler prinzli Datenbanken 7 24.11.2007 21:24
ComputerVerwaltung / System / Ereignisanzeige dh1sbg PHP-Fortgeschrittene 3 17.11.2006 01:42
zwei SQL-Befehle (SELECT UND UPDATE) auf einmal vollziehen. Datenbanken 3 09.03.2006 16:34
UPDATE count nach Link Aufruf ? PHP Tipps 2006 9 22.01.2006 14:53
[Erledigt] per Update eine zahl ehöhen lassen Datenbanken 3 04.07.2005 16:37
Update in mysql funzt nicht maeck PHP Tipps 2005-2 4 27.06.2005 22:52
[Erledigt] PHP5 Update. XAMPP oder manuelles Update? PHP-Fortgeschrittene 7 21.04.2005 22:16
Update per Cronjob (where Feld = Wort) Apfeltyp PHP Tipps 2004-2 3 14.12.2004 18:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
gehen crontab bei systemupdate verloren?, systemupdate während der arbeitszeit

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum