Mailinglisten-Archive |
Hi, ich habe ein Projekt am Laufen, einen Online-Shop in ein Warenwirtschaftsprogramm zu integrieren. Das Warenwirtschaftsprogramm läuft mit einer Firebird Datenbank in einer Firma lokal. Der Online-Shop basiert auf genau der selben DB, die das Wawi benutzt und liegt auf unserem root-Server im Internet. Zur Zeit wird täglich eine Kopie der Wawi DB durchs Netz geschaufelt (ca. 50 mb gepackt und im Backupmodus, originale Größe ca. 400 mb), um den Online-Shop aktuell zu halten. Meine Idee ist es jetzt, mit PHP-CLI über eine gesicherte SSH Verbindung http://us2.php.net/manual/de/function.ssh2-shell.php eine Shell zu öffnen und durch diese dann immer die Änderungen der lokalen DB ins Internet zu übertragen. Die Firebird DB unterstützt TRIGGER und STORED PROCEDURES, womit die geänderten Datensätze direkt nach einem INSERT,UPDATE oder DELETE in eine eigene Tabelle geschoben werden könnten. Diese extra Tabelle wollte ich dann mittels PHP-CLI auslesen und Datensatz für Datensatz über die Shell Verbindung in der entfernten DB wieder eintragen (auf dem entfernten Rechner dann auf der Shell mittels isql (Kommandozeile von firebird)). Um das möglichst flexibel/schnell/zeitnah zu halten, wollte ich ein Skript in eine Endlosschleife setzen und in dieser ständig die extra Tabelle mit den Datensatzänderungen abfragen (vielleicht alle 5 sec.). Sobald dann ein Eintrag enthalten ist, kann der sofort ausgelesen und übertragen werden und die Online-Shop DB aktualisiert werden. Irgendwie muss das PHP-Skript ja wissen, dass neue Einträge in der extra Tabelle vorhanden sind, daher die Idee mit der Endlosschleife. Jetzt meine Bedenken: - Ein PHP-Skript in einer Endlosschleife, wie wirkt sich das auf die Performance des einsetzenden Rechners aus? Man kann doch den Ressourcenverbrauch eines Skriptes einstellen oder? Gäbe es da irgendwelche vorhersehbaren Probleme? - Alle ca. 5 sec. eine einfache Abfrage auf eine Tabelle sollte das DB-System auch nicht in Verlegenheit bringen...oder? Hardwaretechnisch ist auf beiden Seiten alles im grünen Bereich. Sollte halt auch in kritischen Situationen (viele Änderungen auf beiden Seiten) nicht den "normalen" Betrieb beeinflussen. Was haltet Ihr von diesem allgemeinen Lösungsansatz? Würde mich freuen, wenn sich jemand dazu äußern könnte. Ideen, Kritik und Vorschläge sind natürlich willkommen. Vielen Dank im Voraus. Gruss Andi
php::bar PHP Wiki - Listenarchive