AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PHP Skript Ereignis bedingt ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

PHP Skript Ereignis bedingt ausführen

Ein Thema von RWarnecke · begonnen am 7. Dez 2013 · letzter Beitrag vom 7. Dez 2013
 
blackfin
(Gast)

n/a Beiträge
 
#5

AW: PHP Skript Ereignis bedingt ausführen

  Alt 7. Dez 2013, 20:31
Meiner Meinung nach kommt es ganz auf die Art der Ereignisse an, um die beste Lösung zu finden.
Du hast ja generell die Wahl, ob es passive Ereignisse (e.g. Polling) oder aktive Ereignisse (e.g. Trigger) sind.

Generell würde ich bei deinem Szenario "Nach Insert in mySQL soll ein php getriggert werden" den passiven Weg gehen, falls es nicht extrem zeitkritisch ist.
So wäre das ganze relativ einfach über einen Cronjob zu lösen, wie ihn himitsu vorgeschlagen hat.
Hier kann der Cronjob auf das Minimum eingestellt werden (1 Minute) und einfach bei Ausführung prüfen, ob ein neuer Datensatz in der entsprechenden mySQL-Tabelle vorhanden ist und dann das entsprechende php-Script ausführen bzw, wenn der Cronjob bereits ein php-Script ist, entsprechende Aktionen durchführen.
Du hast bei "deinem Kenntnisstand" glaube ich einfach nicht bedacht, dass auch in einem Cronjob, der in einem Rhythmus von 1 Minute ausgeführt wird, Bedingungen möglich sind und somit auch mal einfach gar nichts passieren kann, wenn die Bedingung nicht zutrifft

Ist die minimale Reaktionszeit eines Cronjobs (1 Minute) zu langsam, ginge es in mySQL auch über einen aktiven Trigger und einer UDF, die wiederum bei einem Insert ein externes php-Script triggert.
Diese Lösung ist allerdings um einiges aufwändiger, da sie, je nach UDF, evtl. eine Neukompilierung von mySQL erfordert.

Wie du siehst, sind beide Lösungen hier auf dein Szenario "mySQL-Änderung" gemünzt.
Die beste Lösung für dich wird sich aber nur finden lassen, wenn man alle möglichen Ereignisstypen bei dir kennt und ob die Möglichkeit besteht, bei ALLEN entsprechenden Ereignissen ein Shell-Commando auszuführen.
Ist das der Fall, wird es einfach, da du über die Shell einfach ausführen kannst, was du willst (wie z.B. den php-CLI Interpreter).
Kannst du das aber nicht bei allen Ereignissen, wird es u.U. komplizierter.

Eine andere Möglichkeit wäre es auch noch, statt einem Cronjob z.B. ein node.js-Script auf dem Server laufen zu lassen, das die mySQL-Tabelle aktiv überprüft und dann darüber das php-Script triggert. Wobei sich dann die Frage stellt, wofür man dann noch ein php-Script benötigt
Ich habe jedoch selbst so etwas schon einmal für ein Online-Game gemacht: Der user loggt sich in ein php-Framework ein, Ereignisse werden jedoch über Websocket an einen node-Server gesendet, der dann auch ohne zeitverzögerung die entsprechenden Aktionen ausführen kann.

Desweiteren bietet sich vielleicht auch ein Call über einen REST- / SOAP- / Whatever-Service an, der die entsprechenden Aktionen ausführt.
Hierzu müsste aber die Möglichkeit gegeben sein, bei jedem relevanten Ereigniss einen Request abzuschicken.

Geändert von blackfin ( 7. Dez 2013 um 21:19 Uhr)
  Mit Zitat antworten Zitat
 


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz