2016-04-18 9 views
0

Ich habe eine Anwendung CodeIgniter, die basierend auf einem Filter, der auf ein Raster angewendet wurde, das Ergebnisset als CSV-Datei exportieren kann, indem eine Abfrage auf das Raster in der Datenbank angewendet wird. Wenn die Ergebnismenge jedoch sehr umfangreich ist und viel Filterung und mehrere Tabellen erfordert, dauert die Ausführung dieser Exportaufgabe ziemlich lange, und das Schlimmste daran ist, dass sie die Navigations-/Benutzeroberflächenaktionen blockiert.CodeIgniter Exportieren von Aufgaben zum Blockieren der Navigation

Gibt es eine Möglichkeit mit CI, dass ich diese Aufgabe in einem anderen Thread oder Prozess ausführen und herunterladen kann, sobald es fertig ist? Oder etwas verknüpft asynchrone Aufgaben in C# (meine Hauptprogrammiersprache in diesen Tagen ..)

Mit freundlichen Grüßen.

Antwort

0

Ich würde vorschlagen, dass Sie Warteschlangen zB Rabbitmq verwenden. Dies wird Ihnen helfen, da Sie Multithreading nicht direkt in PHP ausführen können. Bitte überprüfen Sie dies >>How to multi-thread using codeigniter famework(PHP)?

+0

Ja, ich war zuvor in diesem Thread gewesen. Sah Pthread an, schien aber komplizierter als gewollt. Ich habe bereits Rabbitmq installiert, also werde ich es mir genauer ansehen. Vielen Dank. –

+0

Warteschlangen helfen bei der asynchronen Verarbeitung – JobSam

+0

etwas stört mich. Also kann ich RabbitMQ nicht sagen: "Führe diese Methode auf diesem Controller aus und hol mir die Ausgabedatei, wenn sie fertig ist"? Von den Samples, die ich gesehen habe, scheint es so zu sein –