Async-Operation in PHP: Dateioperationsbereich, Argumentübertragung und Einschränken des Ausführungszugriffs

8

Ich habe ein PHP-Skript, das Daten an ein anderes Skript sendet und es asynchron verarbeitet (zumindest hoffe ich, es ebenfalls zu bekommen). Hier ist der Code von called.php

%Vor%

Und meine Bedenken sind im Titel angegeben:

  1. Durch das Schließen der Dateioperationen (wie am Anfang von called.php) wirkt sich dies auf alle anderen Skripte aus, die Dateioperationen verwenden können oder nur auf diejenigen, die im Moment dieser Ausführung betroffen sind?
  2. Wenn ich cURL aufrufen würde, würde ich das Skript anfällig für unangemessene Ausführung machen? Obwohl ich denke, dass ich sicherlich Zugang zu $ ​​_SESSION hätte, die es leicht verfälschen würde, wenn jemand es ausführen möchte. Kann man dem entgegenwirken?
  3. Unter Berücksichtigung der Argumente, die ich zwischen Skripten übertragen müsste, könnte man leicht eine Tonne Bytes erreichen, da in jedem Array um 400 Bytes * x Arrays ein Problem auftreten würde bezüglich der Ausführung?

Vielen Dank für Ihre Hilfe, ich hoffe, Sie halten dies nicht für sehr weit gefasst, da ich alle meine Bedenken explizit ausprobiert und mir geholfen habe (einfacher als fragmentieren). Bitte helfen Sie, wie Sie können, Tyvm.

    
Fane 14.09.2015, 10:15
quelle

2 Antworten

2

Q1: Dateioperationen wirken sich immer auf das gerade laufende Skript aus, natürlich inklusive aller Bibliotheken, die über require oder include geladen wurden.

Q2: Je nachdem, wo sich der Anrufer und der Angerufene befinden, können Sie den Zugriff beschränken, indem Sie beispielsweise den Zugriff auf bestimmte IPs beschränken und die Zugriffsmethode möglicherweise über .htaccess aufrufen.

Wie:

%Vor%

Q3: Auch abhängig von der Verbindung zwischen den beiden Skripten sollte es normalerweise keine Probleme mit großen Datenmengen geben, wenn genügend Bandbreite zur Verfügung steht.

Wir haben einige Skripts in Betrieb, die regelmäßig mit Daten im Bereich von einigen hundert Megabyte umgehen. Es kann erforderlich sein, die Zeitgrenzen für die Skriptausführung zu verlängern oder zu deaktivieren, indem Sie max_execution_time in php.ini oder ini_set() verwenden oder set_time_limit() verwenden (was ein anderer Ansatz ist).

    
syck 16.09.2015, 16:53
quelle
0

pcntl_exec() ersetzt einfach den aktuellen Prozess durch den neuen. Es gibt tatsächlich keine Kommunikation. Ich frage mich, wie Sie denken können, dass einige asynchrone Kommunikation passiert.

Ich bin mir auch nicht sicher, was $_SERVER['argv'][1] hier tun soll. Meinst du nicht argv[0] ?

Sie haben also gerade einen Haufen nicht funktionierenden Code präsentiert. Das ist zu wenig.

    
hek2mgl 16.09.2015 17:56
quelle

Tags und Links