mysqli Abfrage parallel
bearbeitet von Tagwächter> Danke, das ist das Problem. Hier gibt es vermutlich keine Lösung - oder?
Doch, gibt es. Die Sache erscheint mir sehr speziell, dass Du wohl das OS kennst und nutzen kannst. Hier mal für Linux/Unix/Mac:
Du startest den Export im Hintergrund und trennst ihn vollständig vom PHP-Skript:
~~~php
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | batch`;
#oder (schlechter)
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | at now`;
~~~
`batch` und `at` setzen voraus, dass der Dienst `atd` installiert ist und läuft. Das ist nicht mehr überall der Fall. Installiere das Paket 'at' wenn der Dienst fehlt, sich `at` also nicht in einem Terminal aufrufen lässt.
export-skript.php kann auch etwas ganz anderes sein, z.B. ein Shellskript. Es sollte wohl eine Datei bereitstellen, die das Ende bzw. den Erfolg des Prozesses markiert und durch ein weiteres PHP-Skript geprüft und gelöscht wird. Das kann z.B. via einer Ajax-Abfrage regelmäßig geschehen.
[mktemp](https://www.gnu.org/software/autogen/mktemp.html) / [tempnam](http://php.net/manual/de/function.tempnam.php) könnte hier Wunder wirken :-)
Alternativ kann und sollte das Export-Skript ein Mail mit einem Download-Link für die Export-Datei senden. Grund: Eine Wartezeit von 10 Minuten halte ich für unvertretbar, denn in der Zeit kann clientseitig zu viel passieren
mysqli Abfrage parallel
bearbeitet von Tagwächter> Danke, das ist das Problem. Hier gibt es vermutlich keine Lösung - oder?
Doch, gibt es. Die Sache erscheint mir sehr speziell, dass Du wohl das OS kennst und nutzen kannst. Hier mal für Linux/Unix/Mac:
Du startest den Export im Hintergrund und trennst ihn vollständig vom PHP-Skript:
~~~php
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | batch`;
#oder
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | at now`;
~~~
`batch` und `at` setzen voraus, dass der Dienst `atd` installiert ist und läuft. Das ist nicht mehr überall der Fall. Installiere das Paket 'at' wenn der Dienst fehlt, sich at also nicht aufrufen lässt.
export-skript.php kann auch etwas ganz anderes sein, z.B. ein Shellskript. Es sollte wohl eine Datei bereitstellen, die das Ende bzw. den Erfolg des Prozesses markiert und durch ein weiteres PHP-Skript geprüft und gelöscht wird. Das kann z.B. via einer Ajax-Abfrage regelmäßig geschehen.
[mktemp](https://www.gnu.org/software/autogen/mktemp.html) / [tempnam](http://php.net/manual/de/function.tempnam.php) könnte hier Wunder wirken :-)
Alternativ kann und sollte das Export-Skript ein Mail mit einem Download-Link für die Export-Datei senden. Grund: Eine Wartezeit von 10 Minuten halte ich für unvertretbar, denn in der Zeit kann clientseitig zu viel passieren
mysqli Abfrage parallel
bearbeitet von Tagwächter> Danke, das ist das Problem. Hier gibt es vermutlich keine Lösung - oder?
Doch, gibt es. Die Sache erscheint mir sehr speziell, dass Du wohl das OS kennst und nutzen kannst. Hier mal für Linux/Unix/Mac:
Du startest den Export im Hintergrund und trennst ihn vollständig vom PHP-Skript:
~~~php
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | batch`;
#oder
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | at now`;
~~~
`batch` und `at` setzen voraus, dass der Dienst `atd` installiert ist und läuft. Das ist nicht mehr überall der Fall. Installiere das Paket 'at' wenn der Dienst fehlt, sich at also nicht aufrufen lässt.
export-skript.php kann auch etwas ganz anderes sein, z.B. ein Shellskript. Es sollte wohl eine Datei bereitstellen, die das Ende bzw. den Erfolg des Prozesses markiert und durch ein weiteres PHP-Skript geprüft und gelöscht wird. Das kann z.B. via einer Ajax-Abfrage regelmäßig geschehen.
[mktemp](https://www.gnu.org/software/autogen/mktemp.html) / [tempnam](http://php.net/manual/de/function.tempnam.php) könnte hier Wunder wirken :-)
Alternativ kann das Export-Skript natürlich auch ein Mail mit einem Download-Link für die Export-Datei senden...
mysqli Abfrage parallel
bearbeitet von Tagwächter> Danke, das ist das Problem. Hier gibt es vermutlich keine Lösung - oder?
Doch, gibt es. Die Sache erscheint mir sehr speziell, dass Du wohl das OS kennst und nutzen kannst. Hier mal für Linux/Unix/Mac:
Du startest den Export im Hintergrund und trennst ihn vollständig vom PHP-Skript:
~~~php
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | batch`;
#oder
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | at now`;
~~~
`batch` und `at` setzen voraus, dass der Dienst `atd` installiert ist und läuft. Das ist nicht mehr überall der Fall. Installiere das Paket 'at' wenn der Dienst fehlt, sich at also nicht aufrufen lässt.
export-skript.php kann auch etwas ganz anderes sein, z.B. ein Shellskript. Es sollte wohl eine Datei bereitstellen, die das Ende bzw. den Erfolg des Prozesses markiert und durch ein weiteres PHP-Skript geprüft und gelöscht wird. Das kann z.B. via einer Ajax-Abfrage regelmäßig geschehen.
[mktemp](https://www.gnu.org/software/autogen/mktemp.html) / [tempnam](http://php.net/manual/de/function.tempnam.php) könnte hier Wunder wirken :-)
mysqli Abfrage parallel
bearbeitet von Tagwächter> Danke, das ist das Problem. Hier gibt es vermutlich keine Lösung - oder?
Doch, gibt es. Die Sache erscheint mir sehr speziell, dass Du wohl das OS kennst und nutzen kannst. Hier mal für Linux/Unix/Mac:
Du startest:
~~~php
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | batch`;
#oder
$res = `echo "/usr/bin/php /pfad/zum/export-skript.php" | at now`;
~~~
`batch` und `at` setzen voraus, dass der Dienst `atd` installiert ist und läuft. Das ist nicht mehr überall der Fall. Installiere das Paket 'at' wenn der Dienst fehlt, sich at also nicht aufrufen lässt.
export-skript.php kann auch etwas ganz anderes sein, z.B. ein Shellskript. Es sollte wohl eine Datei bereitstellen, die das Ende bzw. den Erfolg des Prozesses markiert und durch ein weiteres PHP-Skript geprüft und gelöscht wird. Das kann z.B. via einer Ajax-Abfrage regelmäßig geschehen.
[mktemp](https://www.gnu.org/software/autogen/mktemp.html) / [tempnam](http://php.net/manual/de/function.tempnam.php) könnte hier Wunder wirken :-)