Jump to content
Sign in to follow this  
k00ni

Sich selbstwartende Skripte .. Gedanken dazu?

Recommended Posts

Hallo,


ich habe mir schon seit längerem Gedanken zu sich selbstwartenden Skripten gemacht. Bei uns ist es so, dass wir viel mit der Datenbank arbeiten und es Fälle in der Praxis entstehen können, die die Datenbestände ungültig machen könnten oder auch aufblähen.


Hier geht es mir eigentlich nicht darum, dass sich ein PHP-Skript selbst wartet, sondern darum, wie man in Skript so organisiert, dass es seine Datenbestände prüft und zur Not ändert (bearbeitet, löscht, etwas hinzufügt etc.) Sollte man sowas eher in der Datei ablegen, weche mit einem "Bereich" zu tun hat (bspw. Verwaltung von etwas) oder eher zentral, wo gleich mehrere Bereiche abgearbeitet werden.

Weiterhin stellt sicht die Frage, ob man Wartungsabfragen und -funktionen auch gleich bei der direkten Arbeit mit den Datenbeständen abwickeln sollte. Also wenn ich beispielsweise eine Freundschaftverbindung zwischen 2 Usern anlege, dass dann das Skript auch prüft, ob es eine gibt, ob es mehrere gibt und diese Notfalls löscht, sowas halt. Gefahr laufe ich selbst immer, auch Fälle abdecken zu wollen, die es eigentlich nie geben kann.


Ideen und Gedanken dazu?



Grüße

Share this post


Link to post
Share on other sites

Ich gebe mal ein Beispiel, wie man das bei DB2 machen könnte. MySQL ist mit den aktuellen Versionen leider noch nicht so weit.


Beispiel: User -> Buddyliste


Bei DB2 werden die beiden Tabellen über Fremschlüssselbedingungen verknüpft und man kann die Methode festlegen was bei bestimmten Fällen passiert.

Unter normalen Umständen, bleiben die Datensätze der Buddyliste stehen, wenn man den Userdatensatz löscht. Bei DB2 lege ich Aktionen fest für


OnDelete

OnUpdate


OnDelete -> Löscht man den User, kann man die Buddy Datensätze automatisch löschen lassen.

OnUpdate -> Würde sich dieUserID ändern, würde sich auch die Userid in den Buddy Datensätzen automatisch updaten.


Ich sehe sowas eigentlich auf datenbankebene, bei mysql muss man es hald händisch lösen.

Share this post


Link to post
Share on other sites

Hmm, dass ist auch eine Möglichkeit: Man packt vieles einfach in die Datenbank und aus dem PHP-Skript raus.


Was ich aber auch meinte sind so Dinge, wie ungültige Datensätze löschen (abgelaufene Kommentare) oder beispielsweise die Sortierung der Bilder bei pImage. Das ist nicht direkt Datenbanktechnisch, sondern muss per PHP-Skript gelöst werden. Mir ging es hierrum und ob man dass eher zentral abwickelt oder immer an der jeweiligen Stelle, wo man die Funktion gerade benötigt.



Grüße

Share this post


Link to post
Share on other sites

Ich denke das hängt von der Situation ab.

Bei Wartungsaufgaben (abgelaufene Posts, Useraccounts, ...) sollte ein CronJob der einmal pro Tag oder Woche rennt reichen.


Wenn du Daten (zB Größe, Datum, ...) zu einem Download ergänzen willst, weil diese noch nicht in der DB stehn, würde ich das beim ersten Aufruf machen und ev. wenns sehr viele Daten sind auch 1mal am Tag per Cron.

Share this post


Link to post
Share on other sites

In Confixx ist es mittlerweile easy, da kann man dann ein PHP Shell Script als Cron laufen lassen. Ansonsten geht es nur wenn man Shell Zugriff hat und die Rechte dazu oder gar einen Root Server besitzt.

Für die Mehrheit an Usern die ihren Webspace auf Shared Hosting Systemen liegen haben wird es in der Regel nicht nutzbar sein.


Wenn ich selber so etwas benötige, wie zum Beispiel beim pCheck, das alle 10 Minuten läuft, mache ich das über einen cron Job und ein php Shell Script. das ist obergenial!

Share this post


Link to post
Share on other sites

Hallo,


bei Drupal gab es die Möglichkeit verschiedene Dinge als Chronjob einbinden zu können... ging das dann über einen anderen User oder über den eigenen?


Wenn dies nicht überall zur Verfügung steht, dann wäre das für uns nicht direkt interessant, wenn dann nur bei einzelnen Projekten.


Wenn du Daten (zB Größe, Datum, ...) zu einem Download ergänzen willst, weil diese noch nicht in der DB stehn, würde ich das beim ersten Aufruf machen und ev. wenns sehr viele Daten sind auch 1mal am Tag per Cron.


Also immer dann, wenn man es auch wirklich braucht. Dies favourisiere ich auch.



Grüße

Share this post


Link to post
Share on other sites
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...