2017-06-16 1 views
1

Ich habe eine Website, erstellt mit PHP und läuft auf Apache. Ich möchte, dass sich ein Abonnent anmelden und einen Prozess auf dem Server starten kann. Sie können sich dann abmelden oder den Browser schließen, ohne den Prozess zu unterbrechen. Später können sie sich anmelden und den Fortschritt sehen oder die Ergebnisse des ursprünglichen Prozesses sehen. Was ist der beste Weg, dies zu erreichen (den Prozess bis zur Fertigstellung laufen zu lassen, nachdem der Browser geschlossen wurde)?(der Prozess läuft bis zur Fertigstellung, nachdem der Browser geschlossen ist)

Ich suche nur jemanden, der mir in die richtige Richtung zeigt. Ein paar Leute erwähnten Gearman.

+0

Diese Frage ist zu breit. Es fragt nicht nach einem bestimmten Problem, sondern erfordert eine komplexe Lösung für ein Szenario. – marekful

+0

verwenden Sie für diesen Zweck einige Jobserver wie 'RabbitMQ' oder' gearman'. –

Antwort

0

Gearman wäre ein idealer Kandidat, und ich würde es für genau den Zweck verwenden, den Sie beschreiben. Es hat alles, was Sie brauchen out-of-the-Box, um Ihre Anforderungen zu erfüllen ("Hintergrund" eine lange laufende, CPU-gebundene Prozess zu einem anderen Computer, zum Beispiel Video-Codierung).

Es gibt eine Gearman PHP library, aber Sie können Ihren Worker Code in einer anderen Sprache schreiben, wenn er besser für die Arbeit geeignet ist.

Zum Melden von Fortschrittsinformationen empfehle ich, dass der Worker Redis oder Memcached schreibt - eine Art temporärer Speicher, auf den auch Ihr Webserver zugreifen kann.

Schauen Sie sich die einfache PHP example auf der Gearman Website. Zum Lernen empfehle ich, eine Laborumgebung einzurichten, die 3 separate VMs enthält, eine für Ihren Webserver (den Client), eine für die Gearman-Jobwarteschlange (den Server) und eine weitere für die Verarbeitung von Jobs (die Worker).

Verwandte Themen