Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

php prob

Empfohlene Antworten

Veröffentlicht

hi...hab 2 rechner, auf denen je ein xampp-server läuft. auf den einen rechner kann man vom internet aus zugreifen der andere ist nur per lan mit dem ersten verbunden. wenn nun ein user auf dem ersten rechner ne anfrage stellt von der ich weiss das die berechnung relativ lange dauert dann möchte ich dem php script sagen er soll ein anderes php script auf dem 2ten rechner aufrufen. wie geht das mit php???

Vielleicht beschreibst du dein Problem mal etwas genauer denn so richtig werde ich da nicht schlau draus. Für mich hört es sich so an als willst du einen Loadbalancer (Lastverteilung) haben. Gehe ich hier richtig in der Annahme?

erstmal sry wegen des falschen forums :rolleyes:

als ich die frage stellte, hat sich das problem gerade aufgetan, daher die ungünstige dartstellung. nun habe ich bereits versucht mehr herraus zu finden und denke ich kann die sache besser definieren. ich habe vor auf grund eines eingespielten events eine reaktion hervor zu rufen. dies soll nach folgendem schema passieren:

- anwender klickt und gibt damit den befehl zu einer best. zukünftigen zeit

einen eintrag in einer mysql tabelle zu verändern bzw. anzulegen

- ein externer prozess läuft in einer endlosschleife, ist so in der lage

festzustellen, ob die besagte zeit bereits 1 ist und wenn dies der fall ist,

ändert er die tabelle wie zuvor vereinbart. (ich bin der meinung, dass

soetwas nur geht, wenn dies ein zweiter recher tut, da, wenn der

hauptserver in einer endlosschleife hängt, nichts mehr anderes passiert)

- der zwischenzeitlich möglich offline gewesene user geht online und sieht die

auswirkung der passierten veränderung.

es ist notwendig, dass die änderung in realtime vollzogen wird. sie kann nicht erst berechnet werden, wenn der user das nächse mal online geht.

ich habe gelesen, dass soetwas mit cgi ( SELFHTML: Perl / Perl-Module / Modul CGI: Funktionen für die CGI-Programmierung ) wohl möglich ist, nur kommt mir diese lösung nicht optimal vor (zitat: "...Ein Nachteil des CGI-Moduls ist allerdings, dass es recht groß ist. Bei CGI-Scripts, die sehr häufig aufgerufen werden (z.B. Zugriffszähler-Scripts auf vielbesuchten Seiten), kann sich das bei der Belastung des Server-Rechners bemerkbar machen. In solchen Fällen ist es durchaus vertretbar, sich bewusst gegen die Verwendung des CGI-Moduls zu entscheiden..." ) . gibt es eine effizientere lösung? kann es sein, dass ich ganz und gar auf dem holzweg bin und man über eine ganz andere herrangehensweise nachdenken sollte?

ich bin für jeden tip dankbar.

lg msp

- ein externer prozess läuft in einer endlosschleife, ist so in der lage

festzustellen, ob die besagte zeit bereits 1 ist und wenn dies der fall ist,

ändert er die tabelle wie zuvor vereinbart. (ich bin der meinung, dass

soetwas nur geht, wenn dies ein zweiter recher tut, da, wenn der

hauptserver in einer endlosschleife hängt, nichts mehr anderes passiert)

Wenn dein Betriebssystem nur einen Prozess gleichzeitig abarbeiten kann, dann stimmt das vielleicht (also so vor 30 Jahren war das vielleicht mal so). Dein Apache hängt ja praktisch auch in einer Endlosschleife und wartet darauf, dass eine Anfrage kommt. Genauso tut es das fast alles, was da auf deinen Rechner läuft...

Deinen Prozess würde ich eh nicht mit PHP machen, da gibt es effizientere Möglichkeiten (wenn man die denn hat). Aber selbst wenn, kannst du PHP ja per CLI aufrufen, dann hat das mit dem Webserver ncihts zu tun und läuft als eigener Prozess.

Als weitere IDee könntest du die Eintragungen auch gleich in die DB machen, dazu aber den Zeitpunkt miteintragen, ab dem die Eintragungen "gültig" sind. Bei jedem Abruf der Daten prüfst du dann die Zeit mit ab und zeigst den eintrag erst an, wenn er "gültig" ist. Somit brauchst du keinen zweiten Rechner oder zweiten Prozess oder sonstwas. Das sollte doch genau das tun, was du willst, oder nicht?

- ein externer prozess läuft in einer endlosschleife, ist so in der lage

festzustellen, ob die besagte zeit bereits 1 ist

Aber bitte nicht so wie dieser "Beispielcode" in dem anderen Forum. Du wartest mit voller Prozessorauslastung, das ist Gift für Multitaskingbetriebssysteme. Benutzt eine passende Wartefunktion.

und wenn dies der fall ist,

ändert er die tabelle wie zuvor vereinbart. (ich bin der meinung, dass

soetwas nur geht, wenn dies ein zweiter recher tut, da, wenn der

hauptserver in einer endlosschleife hängt, nichts mehr anderes passiert)

Unsinn. Siehe oben.

es ist notwendig, dass die änderung in realtime vollzogen wird.
Bitte informiere dich, was Realtime bedeutet. Du brauchst sicher nicht mehr als eine Auflösung von einer Sekunde.

nur kommt mir diese lösung nicht optimal vor (zitat: "...Ein Nachteil des CGI-Moduls ist allerdings, dass es recht groß ist. Bei CGI-Scripts, die sehr häufig aufgerufen werden (z.B. Zugriffszähler-Scripts auf vielbesuchten Seiten), kann sich das bei der Belastung des Server-Rechners bemerkbar machen. In solchen Fällen ist es durchaus vertretbar, sich bewusst gegen die Verwendung des CGI-Moduls zu entscheiden..." ) . gibt es eine effizientere lösung?
Du wartest mit Volllast und machst dir Sorgen über die Performance von CGI? Das ist schon irgendwie ironisch.

kann es sein, dass ich ganz und gar auf dem holzweg bin und man über eine ganz andere herrangehensweise nachdenken sollte?
Ja :)

ich bin für jeden tip dankbar.
Ich habe den Eindruck (auch wenn ich die Beiträge in dem anderen Forum lese), dass du eine Menge Tipps bekommst, aber nicht befolgst.

da hast du vllt. recht, aber ich bin gerade dabei mir wissen in dieser richtung anzueignen, d.h. noch bin ich nicht so wirklich der held :rolleyes:

wenn du mir weiterhelfen willst, dann wär es cool, wenn du mich auf meine fehler aufmerksam machen könntest. mich zu verspotten bringt mir nix :(

ich wollte mit dem link das problem klar machen. ist es das?

wenn du mir weiterhelfen willst, dann wär es cool, wenn du mich auf meine fehler aufmerksam machen könntest.
Genau das habe ich getan.

mich zu verspotten bringt mir nix :(
Wer hat dich denn verspottet?

ich wollte mit dem link das problem klar machen. ist es das?
Das Problem ist in meinen Augen, dass du die Tipps der Helfer nicht verstehst oder nicht umsetzen kannst. Du ziehst aus deinen vermeintlichen Anforderungen zum Teil recht wirre Schlüsse und lässt davon offenbar auch nicht ab.

In welcher Form soll die Hilfe denn sein, dass sie bei dir ankommt und du zufrieden bist?

ok. dann weiß ich jetzt, dass ich bekloppt bin. sag mir doch bitte was ich falsch interpretiert hab und wie ich es hätte interpretieren sollen.

ok. dann weiß ich jetzt, dass ich bekloppt bin.
Dieses kindische Verhalten wird dich auch nicht weiterbringen.

sag mir doch bitte was ich falsch interpretiert hab und wie ich es hätte interpretieren sollen.
Vieles davon wurde dir schon gesagt. Was bringt es, wenn ich es wiederhole?

Versuch doch mal, die Tipps, die du hier und in dem anderen Forum bekommen hast, umzusetzen. Und wenn du dabei auf Probleme stößt, melde dich wieder hier, mit einer konkreten Problembeschreibung.

Oder mach's so: Schreib ein Skript, dass in eine andere Tabelle deiner Datenbank die einzutragenden Einträge mit der Zeit einträgt. Ein anderes Programm, das entweder wartet oder über einen Cronjob gestartet wird, prüft diese Tabelle regelmäßig auf Einträge, die fällig sind, und überträgt sie in deine eigentliche Tabelle.

sag mir doch bitte was ich falsch interpretiert hab ...

Als weitere IDee könntest du die Eintragungen auch gleich in die DB machen, dazu aber den Zeitpunkt miteintragen, ab dem die Eintragungen "gültig" sind. Bei jedem Abruf der Daten prüfst du dann die Zeit mit ab und zeigst den eintrag erst an, wenn er "gültig" ist. Somit brauchst du keinen zweiten Rechner oder zweiten Prozess oder sonstwas. Das sollte doch genau das tun, was du willst, oder nicht?

Und das sollst du nicht interpretieren, sondern umsetzen ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.