"processus"
page 1 page 2
Tout d'abord salut à tous, ça fait un bail que je ne suis pas venu ^^ comment allez-vous ?
Heu je vais vous expliquer mon problème :
Est-il possible de coder une page en php qui s'exécute un peu comme un processus windose, c'est à dire qui s'active et ne s'arrête pas sauf sur demande, et qui traîterait en temps réel certaines choses ?
J'ai un peu de mal à expliquer, je vais essayer de faire un exemple :
Supposons que j'ai une page "formu.php" avec les champs "adresse", "texte", "date". Lorsqu'on valide le formulaire, au lieu mettre ces infos dans la bdd on stocke ces données je ne sais où, dans la ram du serveur par exemple.
Est-il possible de faire un script "mail.php" qui traîte tous ces résultats de formulaires, pour envoyer les mail aux heures choisies dans le formulaire ?
Car tout mettre dans une base de données et faire un cron qui va vérifier toutes les secondes dans la base de données si il est l'heure d'envoyer un mail me semble inaproprié !
Voilà j'espère que mon explication est compréhensible.
Merci d'avance pour vos lumières !
Heu je vais vous expliquer mon problème :
Est-il possible de coder une page en php qui s'exécute un peu comme un processus windose, c'est à dire qui s'active et ne s'arrête pas sauf sur demande, et qui traîterait en temps réel certaines choses ?
J'ai un peu de mal à expliquer, je vais essayer de faire un exemple :
Supposons que j'ai une page "formu.php" avec les champs "adresse", "texte", "date". Lorsqu'on valide le formulaire, au lieu mettre ces infos dans la bdd on stocke ces données je ne sais où, dans la ram du serveur par exemple.
Est-il possible de faire un script "mail.php" qui traîte tous ces résultats de formulaires, pour envoyer les mail aux heures choisies dans le formulaire ?
Car tout mettre dans une base de données et faire un cron qui va vérifier toutes les secondes dans la base de données si il est l'heure d'envoyer un mail me semble inaproprié !
Voilà j'espère que mon explication est compréhensible.
Merci d'avance pour vos lumières !
Alors faire éxécuter un script en boucle serait possible à trois conditions:
=>Que le navigateur ne se ferme jamais et ne bloque pas après une certaine durée
=>Que le serveur n'est pas de durée max d'exécution pour un script !
=>Qu'il y est une gestion de priorité de threads etc ...
Aucune de ces conditions n'est respecté, donc en gros NON !
Ce que je ferai, c'est de codé un script (python, bash etc...) qui tournerai directement sur le serveur et qui gerera ça !
Ou sinon, si tu as plus d'une requette HTTP par seconde, tu peux lancer un script à chaque ouverture de pages de ton site (mais ça reste du bricolage) ...
Pour ce genre de choses, si tu n'as pas accès direct au serveur, il est très difficile de faire quelques choses qui ne soit pas une usine à gaz !!!
Voila...
=>Que le navigateur ne se ferme jamais et ne bloque pas après une certaine durée
=>Que le serveur n'est pas de durée max d'exécution pour un script !
=>Qu'il y est une gestion de priorité de threads etc ...
Aucune de ces conditions n'est respecté, donc en gros NON !
Ce que je ferai, c'est de codé un script (python, bash etc...) qui tournerai directement sur le serveur et qui gerera ça !
Ou sinon, si tu as plus d'une requette HTTP par seconde, tu peux lancer un script à chaque ouverture de pages de ton site (mais ça reste du bricolage) ...
Pour ce genre de choses, si tu n'as pas accès direct au serveur, il est très difficile de faire quelques choses qui ne soit pas une usine à gaz !!!
Voila...
merci pour ta réponse.
c'est bien ce que je me disais, il faut utiliser un autre langage ... mais je ne sais pas du tout lequel ! car il faut que certains scripts php puissent envoyer des données à ce programme, et que ce programme puisse effectuer des requètes sql aussi.
si tu pouvais me conseiller sur quel langage utiliser ce serait sympa car je ne sais pas dans quelle direction chercher et je ne m'y connais pas du tout ! je sens que l'interaction php/programme va être dure à réaliser :/
en attendant une réponse je vais me documenter sur bash et python alors.
ps : si un modo passe par là : je crois que j'aurais du poster dans "Autres technologies" plutôt que dans "php/mysql"
c'est bien ce que je me disais, il faut utiliser un autre langage ... mais je ne sais pas du tout lequel ! car il faut que certains scripts php puissent envoyer des données à ce programme, et que ce programme puisse effectuer des requètes sql aussi.
si tu pouvais me conseiller sur quel langage utiliser ce serait sympa car je ne sais pas dans quelle direction chercher et je ne m'y connais pas du tout ! je sens que l'interaction php/programme va être dure à réaliser :/
en attendant une réponse je vais me documenter sur bash et python alors.
ps : si un modo passe par là : je crois que j'aurais du poster dans "Autres technologies" plutôt que dans "php/mysql"
(Michel_57) Tu es dans le bon forum. Parce que ce que tu demandes est possible.
Tu peux utiliser PHP pour écrire des applications. Aussi bien des scripts Web que des application fenêtrées ou des daemons. Maintenant, que veux-tu comme application ?
N'essaye pas de programmer des applications en bash, tu vas t'arracher les cheveux.
En ce qui concerne le fait d'avoir une interface de saisie et un cron qui parcours la table pour les updates, c'est ce qui ce fait dans beaucoups de gros intrawebs. Donc, pas de remords de ce côté là !
(Bzh) Tu pars du principe que PHP ne peut que générer du HTML, ce qui est faux.
Tu peux utiliser PHP pour écrire des applications. Aussi bien des scripts Web que des application fenêtrées ou des daemons. Maintenant, que veux-tu comme application ?
N'essaye pas de programmer des applications en bash, tu vas t'arracher les cheveux.
En ce qui concerne le fait d'avoir une interface de saisie et un cron qui parcours la table pour les updates, c'est ce qui ce fait dans beaucoups de gros intrawebs. Donc, pas de remords de ce côté là !
(Bzh) Tu pars du principe que PHP ne peut que générer du HTML, ce qui est faux.
En ce qui concerne le fait d'avoir une interface de saisie et un cron qui parcours la table pour les updates, c'est ce qui ce fait dans beaucoups de gros intrawebs. Donc, pas de remords de ce côté là !
oui mais le problème c'est que ça va coûter très cher en ressources pour le serveur, car il va falloir lancer le cron toutes les secondes, ce qui fait déjà rien que 3600 requètes/heure minimum ça me semble super lourd ! Et de plus l'écriture dans la base de données, puis la lecture et enfin l'effacement ça doit le fatiguer aussi le serveur, je pensais que ce serait plus simple de tout laisser dans la ram (je ne sais pas comment) et de mettre les actions dans une file d'attente rangée par ordre chronologique. le programme attendrait donc qu'il soit l'heure indiquée dans le premier élément de la file pour le traîter, faire les opérations correspondantes dans la bdd, puis supprimer l'élément de la file et passer au suivant. (le système tête/queue en gros)
si php permet de concevoir ce genre de programme, je suis preneur !
ps : on part du principe que j'ai tous les droits sur le serveur et que j'héberge moi même mes scripts, si c'est plus simple à concevoir je ferai ainsi plutôt qu'un hébergement classique.
Oui je sais bien que PHP permet d'écrire des applications à part entière !
PHP + GTK permet des gérer des prog fenestrés !
Mais est-ce vraiment dans sans cette optique là que php est developpé ? Le trouve tu vraiment optimisé pour cela ?
S'il y a des langage comme le C ou le python en plus haut niveau c'est qu'il y a une raison !!!
Enfin je pense ...
PHP + GTK permet des gérer des prog fenestrés !
Mais est-ce vraiment dans sans cette optique là que php est developpé ? Le trouve tu vraiment optimisé pour cela ?
S'il y a des langage comme le C ou le python en plus haut niveau c'est qu'il y a une raison !!!
Enfin je pense ...
Je suis en train d'apprendre les bases de python, en espérant que je ne perd pas mon temps :D
http://fr.wikibooks.org/wiki/Programmation_Python
Si je fais fausse route et que ce n'est pas de Python dont j'ai besoin svp faites le moi savoir !
http://fr.wikibooks.org/wiki/Programmation_Python
Si je fais fausse route et que ce n'est pas de Python dont j'ai besoin svp faites le moi savoir !
Python est un langage MAGNIFIQUE !
Tout comme php il est LIBRE :
Il est multiplateformes, peut se compiler pour faire un exe indépendant ! Et surtout il est magnifiquement simple !
J'en suis littéralement tombé amoureux !!!!
Tout comme php il est LIBRE :
Il est multiplateformes, peut se compiler pour faire un exe indépendant ! Et surtout il est magnifiquement simple !
J'en suis littéralement tombé amoureux !!!!
Heu, mince, tout ça pour dire que, de toute façon, tu ne fais pas fausse route !
Voili ...
Voili ...
ok merci bien :)
et si tu aimes tellement ce langage tu as peut-être envie de partager cette passion, alors n'hésites pas à m'envoyer des liens (par MP pour éviter de flooder ici) qui pourraient m'être utiles
car je vois bien les bases du langage c'est facile à assimiler mais pour faire interagir python avec ma bdd et mon script php, ça va être plus coton donc toute aide est la bienvenue ^^
et si tu aimes tellement ce langage tu as peut-être envie de partager cette passion, alors n'hésites pas à m'envoyer des liens (par MP pour éviter de flooder ici) qui pourraient m'être utiles
car je vois bien les bases du langage c'est facile à assimiler mais pour faire interagir python avec ma bdd et mon script php, ça va être plus coton donc toute aide est la bienvenue ^^
(Michel_57)
Pourquoi une telle contrainte ?
Au contraire, tu le soulage.
AJAX.
Le PHP est né pour ne pas devoir recourir à un programme CGI pour disposer d'un compteur sur son site. Est-ce que Windows... bon, mauvais exemple :p
Est-ce que que le Basic était destiné à de la programmation professionnelle ?
Le PHP est devenu le Basic complet d'aujourd'hui. Il est suffisemment mature et robuste pour être exploitable dans la programmation d'applications qui demandent moins de robustesse qu'une application Web.
Le C est universelle, il est à la base de la programmation moderne. On ne peut pas le mettre en comparaison de Python ou de PHP. D'ailleurs, Python n'est pas mieux que PHP. Son apparente propreté cache tous les défauts des langages de script, tel que le manque de typage.
Bref, ensuite c'est une question d'expertise et dé préférence.
Au fait, une autre raison pour laquelle il existe un petit million de langages de programmation : chacun croit avoir trouvé le coktail parfait et veut prouver qu'il a raison. Personne n'est content des langages existant.
oui mais le problème c'est que ça va coûter très cher en ressources pour le serveur, car il va falloir lancer le cron toutes les secondes
Pourquoi une telle contrainte ?
Et de plus l'écriture dans la base de données, puis la lecture et enfin l'effacement ça doit le fatiguer aussi le serveur
Au contraire, tu le soulage.
je pensais que ce serait plus simple de tout laisser dans la ram (je ne sais pas comment)
AJAX.
Mais est-ce vraiment dans sans cette optique là que php est developpé ? Le trouve tu vraiment optimisé pour cela ?
Le PHP est né pour ne pas devoir recourir à un programme CGI pour disposer d'un compteur sur son site. Est-ce que Windows... bon, mauvais exemple :p
Est-ce que que le Basic était destiné à de la programmation professionnelle ?
Le PHP est devenu le Basic complet d'aujourd'hui. Il est suffisemment mature et robuste pour être exploitable dans la programmation d'applications qui demandent moins de robustesse qu'une application Web.
S'il y a des langage comme le C ou le python en plus haut niveau c'est qu'il y a une raison !!!
Le C est universelle, il est à la base de la programmation moderne. On ne peut pas le mettre en comparaison de Python ou de PHP. D'ailleurs, Python n'est pas mieux que PHP. Son apparente propreté cache tous les défauts des langages de script, tel que le manque de typage.
Bref, ensuite c'est une question d'expertise et dé préférence.
Au fait, une autre raison pour laquelle il existe un petit million de langages de programmation : chacun croit avoir trouvé le coktail parfait et veut prouver qu'il a raison. Personne n'est content des langages existant.
apparament je n'ai pas su expliquer mon objectif assez bien, je retente :
en fait je dois faire des requètes SQL à des heures précises, à la seconde près si possible, donc j'ai 2 choix :
1) exécuter un script "qui scrute la bdd voir si à la seconde actuelle une requète doit être faite" et ce donc toutes les secondes
2) faire un programme qui attend un événement (ici pas un clic de souris évidament mais un message envoyé par le script php) en python ça s'appelle un MainLoop d'après ce que j'ai compris.
le choix 1 me parait idiot car surcharge énorme de la bdd, car il faudrait y stocker des informations (dont une date), puis visiter la bdd toutes les secondes voir si une date est atteinte, puis enfin si une date est atteinte, extraire les informations correspondantes, les traîter, puis enfin faire les requètes correspondantes, et enfin supprimer les enregistrements traités.
en gros on ferait des requètes continuellement pour savoir si d'autres requètes doivent être effectueés, c'est l'enfer.
le choix 2 fait minimum 3600 requètes de moins par heure sans compter les nombreux éléments placés en file d'attente qui économisent chaqun encore une insertion + une suppression. en compensation de ces milliers, voire dizaines de milliers de requètes économisées par heure, on remplit juste la ram.
mes actions qui doivent être traîtées à la seconde près, ne sont pas de banales actions de maintenance ou des choses qui se font que de temps en temps, il peut y en avoir plusieurs par seconde, alors toutes les mettre temporairement dans la bdd en attendant leur heure ...
bref je crois que ce coup-ci vous pourrez mieux cerner mon problème.
en fait je dois faire des requètes SQL à des heures précises, à la seconde près si possible, donc j'ai 2 choix :
1) exécuter un script "qui scrute la bdd voir si à la seconde actuelle une requète doit être faite" et ce donc toutes les secondes
2) faire un programme qui attend un événement (ici pas un clic de souris évidament mais un message envoyé par le script php) en python ça s'appelle un MainLoop d'après ce que j'ai compris.
le choix 1 me parait idiot car surcharge énorme de la bdd, car il faudrait y stocker des informations (dont une date), puis visiter la bdd toutes les secondes voir si une date est atteinte, puis enfin si une date est atteinte, extraire les informations correspondantes, les traîter, puis enfin faire les requètes correspondantes, et enfin supprimer les enregistrements traités.
en gros on ferait des requètes continuellement pour savoir si d'autres requètes doivent être effectueés, c'est l'enfer.
le choix 2 fait minimum 3600 requètes de moins par heure sans compter les nombreux éléments placés en file d'attente qui économisent chaqun encore une insertion + une suppression. en compensation de ces milliers, voire dizaines de milliers de requètes économisées par heure, on remplit juste la ram.
mes actions qui doivent être traîtées à la seconde près, ne sont pas de banales actions de maintenance ou des choses qui se font que de temps en temps, il peut y en avoir plusieurs par seconde, alors toutes les mettre temporairement dans la bdd en attendant leur heure ...
bref je crois que ce coup-ci vous pourrez mieux cerner mon problème.
Arf ! Ta pas tard Lupus ...
Mais dans le cas de Michel, je reste sur ma position !
C ou bien python !!!! Le C est un langage de plus bas niveau donc plus compliquer à mettre en oeuvre que le php ou le PYTHON !
Pour de petits utilitaires, Python est parfait alors que le C est trop compliqué ...
Il y a aussi le bash, mais il faut avoir l'habitude ...
Voili mon avis mon simple avis. A toi de voir ...
Mais dans le cas de Michel, je reste sur ma position !
C ou bien python !!!! Le C est un langage de plus bas niveau donc plus compliquer à mettre en oeuvre que le php ou le PYTHON !
Pour de petits utilitaires, Python est parfait alors que le C est trop compliqué ...
Il y a aussi le bash, mais il faut avoir l'habitude ...
Voili mon avis mon simple avis. A toi de voir ...
Le C est un langage de bas niveau, car il est proche du matériel (plus on s'abstrait, et plus on est haut niveau).
C n'est pas un langage compliqué. C est un langage bien plus simple que le Python ou le PHP, car il n'y a pas de piège. La difficulté du C, c'est que ce n'est pas une plate-forme de développement mais seulement un langage, contrairement au PHP ou au Python.
Mais sinon, je maintient : le C est un langage simple. Ensuite il y a le C++ ou Java, voir C# qui sont bien plus rigoureux que les langages de script, et qui permettent d'écrire proprement.
C n'est pas un langage compliqué. C est un langage bien plus simple que le Python ou le PHP, car il n'y a pas de piège. La difficulté du C, c'est que ce n'est pas une plate-forme de développement mais seulement un langage, contrairement au PHP ou au Python.
Mais sinon, je maintient : le C est un langage simple. Ensuite il y a le C++ ou Java, voir C# qui sont bien plus rigoureux que les langages de script, et qui permettent d'écrire proprement.
Ne vous disputez pas trop les gars ;)
Puisque bzh confirme que Python peut le faire, je vais utiliser Python (j'ai déjà apris les 100 premières pages d'un cours de 268 pages)
C'est facile, mais c'est surtout la communication PHP -> Python et Python -> BDD qui me fait peur mais j'y arriverai :p
Puisque bzh confirme que Python peut le faire, je vais utiliser Python (j'ai déjà apris les 100 premières pages d'un cours de 268 pages)
C'est facile, mais c'est surtout la communication PHP -> Python et Python -> BDD qui me fait peur mais j'y arriverai :p
page 1 page 2
Accès rapide :
Remonter 

