2017-06-16 4 views
1

J'ai un site web, créé en PHP et fonctionnant sous Apache. Je veux qu'un abonné puisse se connecter et démarrer un processus sur le serveur. Ils peuvent ensuite se déconnecter ou fermer le navigateur sans interrompre le processus. Plus tard, ils peuvent se connecter et voir les progrès ou voir les résultats du processus d'origine. Quel est le meilleur moyen d'y parvenir (faire tourner le processus jusqu'à la fin, après la fermeture du navigateur)? Je cherche juste quelqu'un pour me diriger dans la bonne direction.(le processus se poursuit jusqu'à la fin, après la fermeture du navigateur)

Quelques personnes ont mentionné Gearman.

+0

Cette question est trop large. Il ne s'agit pas d'un problème spécifique mais d'une solution complexe à un scénario. – marekful

+0

utiliser un serveur de travail comme 'RabbitMQ' ou' gearman' à cette fin. –

Répondre

0

Gearman serait un candidat idéal, et je l'utiliser pour exactement le but que vous décrivez. Il a tout ce dont vous avez besoin hors de la boîte pour répondre à vos besoins ("arrière-plan" un processus de longue durée, liée à la CPU à une autre machine, par exemple l'encodage vidéo).

Il existe un Gearman PHP library, mais vous pouvez écrire votre code de travail dans une langue différente s'il est mieux adapté pour faire le travail.

Pour signaler des informations de progression, je recommande que le travailleur écrive à Redis ou Memcached - un type de stockage temporaire auquel votre serveur Web peut également accéder.

Consultez le PHP example simple sur le site Gearman. Pour l'apprentissage, je recommande de configurer un environnement de laboratoire qui contient 3 machines virtuelles séparées, une pour votre serveur Web (le client), une pour la file d'attente des travaux Gearman (le serveur) et une autre pour les tâches de traitement (les travailleurs).