Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2011, 11h20   #1
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Par défaut Process en background

Hello World
Je dois réaliser une interface d'utilisation web d'un logiciel assez long à s'exécuter et le problème c'est que la page php freeze quand je le lance en clair et ne lance rien quand j'essaye de le lancer en background (cmd &).
Pas la peine de RTFM ni GIYF, j'ai déjà tenté
Je suis sous Apache 2.2.16 et php5 et pour l'OS, je tourne sous Gnu/Linux, distrib Ubuntu.
Quelqu'un peut-il m'aider?
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 11h50   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
utilise Ajax
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 12h02   #3
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Sauf erreur de ma part, AJAX n'est-il pas basé sur du javascript donc sur la machine client?
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 12h26   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Citation:
Envoyé par dhuyp Voir le message
Sauf erreur de ma part, AJAX n'est-il pas basé sur du javascript donc sur la machine client?
Oui, et donc ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 12h43   #5
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 806
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 806
Points : 1 520
Points : 1 520
Le fait d'utiliser de l'Ajax pour appeler les traitements serveur empêchera ton navigateur de freezer.
Par contre Javascript freeze assez facilement si tu manipules beaucoup de données lors des réponses des requêtes.
Pour te donner une idée, mon Firefox commence à freezer sur mon appli qui génère un tableau de 3000 entrées en 7 colonnes. Cependant c'est très dépendant de la configuration de ton PC bien évidemment.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/06/2011, 13h20   #6
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Citation:
Envoyé par Benjamin Delespierre Voir le message
Oui, et donc ?
Mon logiciel tourne sur serveur et les données sont sur le serveur.
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 13h21   #7
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Citation:
Envoyé par transgohan Voir le message
Le fait d'utiliser de l'Ajax pour appeler les traitements serveur empêchera ton navigateur de freezer.
Par contre Javascript freeze assez facilement si tu manipules beaucoup de données lors des réponses des requêtes.
Pour te donner une idée, mon Firefox commence à freezer sur mon appli qui génère un tableau de 3000 entrées en 7 colonnes. Cependant c'est très dépendant de la configuration de ton PC bien évidemment.
Les traitements serveurs?
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 13h38   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
C'est pas bien compliqué. Le traitement lourd coté serveur doit être piloté par Ajax afin que le navigateur ne freeze par pendant le processus. Tu peux afficher un gif de loading voire une barre de progression pour que l'utilisateur ait une idée de l'avancement.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 14h31   #9
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Le problème est que cette durée peut être de l'ordre d'une semaine voire plus!
L'utilisateur ne peut pas rester sur la page pendant cette durée.
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 14h42   #10
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Voyez vous ça

Tu aurais dû le dire dès le départ parce que là on est partis sur la mauvaise piste. La seule solution que je verrai pour faire ça est un daemon en PHP.
Voici un article qui traite de la question: http://devlog.info/2010/03/07/creating-daemons-in-php/

Le principe serait de mettre sur tes pages un trigger qui dit au daemon de démarrer. Ensuite, le daemon pourrait mettre à jour le status de son travail quelque part (soit s'il est interrogé par webservice, soit en DB).

Pour piloter le daemon, je te recommande l'utilisation des signaux et des threads que tu ne peux obtenir qu'avec l'extension PCNTL (à installer).

Au passage, créer un daemon en PHP requiert PHP 5.3 car les version antérieures n'ont pas de garbage collector et les memory leaks viendront perturber le processus.

Par curiosité, quel genre de traitement prends 1 semaine chez toi ??
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h04   #11
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Parcours de Rainbow Tables.
Je sais que je suis casse-c*****e mais le problème c'est qu'en environnement de production ça va être dur de les convaincre de passer sous 5 déjà...
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2011, 15h31   #12
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Dans ce cas, PHP n'est pas la solution technique qu'il te faut. C'est tout.

On peut (presque) tout faire avec n'importe quel langage, mais il faut pas aller miner du charbon avec des assiettes, c'est pas fait pour.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/06/2011, 08h09   #13
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Et tu me recommanderais quoi? Je pensais faire un programme qui appelle l'autre programme... etc. Mais sans trop alourdir le serveur =)
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 11h37   #14
Invité régulier
 
Homme
Développeur informatique
Inscription : juin 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2011
Messages : 11
Points : 5
Points : 5
Hallelujah!

L'astuce est en fait de passer la commande de cette manière:
Code :
1
2
3
4
5
6
7
 
$fp=fopen("exec.sh",'w+');
fwrite($fp,'('.$cmd.') &');
fclose($fp);
chmod("exec.sh",0777);
 
system("./exec.sh");
Puisque l'interprétation system('('.$cmd.') &'); ne semble pas fonctionner.

Thx de votre réactivité
dhuyp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h03.


 
 
 
 
Partenaires

Hébergement Web