Petite question sur un éventuel fonct des fonctions en //

Petite question sur un éventuel fonct des fonctions en // - Programmation

Marsh Posté le 26-02-2002 à 14:51:03    

Rebonjour à tous  :hello:  
 
voici un petit problème :
j'ai une fonction qui enregistre des news dans une BD et qui transmet à N utilisateurs un mail d'avertissement d'une nouvelle entrée.
 
Le problème est que pour un N<10 ça va mais pour un N>100 la page suivante met beaucoup de temps à venir (le temps que la fct d'envoi des mail() ait finie de s'exécuter).
Comment puis-je faire pour que ma fonction s'exécute en parallèle des autres de manière à ne pas bloquer l'utilisateur qui emet la news ! :hap:  
 
Merci
Alex01 :bounce:

Reply

Marsh Posté le 26-02-2002 à 14:51:03   

Reply

Marsh Posté le 26-02-2002 à 15:04:14    

J'ai oublié de préciser que c'est pour du PHP :jap:  
 
Alex01

Reply

Marsh Posté le 26-02-2002 à 15:04:41    

Bah je crois que tu peux pas vraiment faire autrement


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 26-02-2002 à 15:14:25    

lord ii a écrit a écrit :

Bah je crois que tu peux pas vraiment faire autrement  




 
bin si (jsp, asp, ...)


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 15:23:51    

c'est à dire (JSP : c'est quel language ?) :??:  
rien à voir avec le JavaScript je pense ! :non:  
 
Peut il dialoguer avec PHP ? :??:  
 
Et java (servlets, n'est ce pas possible ?)
 :??:  
Merci
Alex01 :bounce:

Reply

Marsh Posté le 26-02-2002 à 15:45:50    

Alex01 a écrit a écrit :

Rebonjour à tous  :hello:  
 
voici un petit problème :
j'ai une fonction qui enregistre des news dans une BD et qui transmet à N utilisateurs un mail d'avertissement d'une nouvelle entrée.
 
Le problème est que pour un N<10 ça va mais pour un N>100 la page suivante met beaucoup de temps à venir (le temps que la fct d'envoi des mail() ait finie de s'exécuter).
Comment puis-je faire pour que ma fonction s'exécute en parallèle des autres de manière à ne pas bloquer l'utilisateur qui emet la news ! :hap:  
 
Merci
Alex01 :bounce:  




 
Tu ne pourrais pas plutôt envoyé 1 mail à tes 100 personnes? Si j'ai bien compris, là tu envoies 100 mails c'est ça???

Reply

Marsh Posté le 26-02-2002 à 15:50:50    

Alex01 a écrit a écrit :

Rebonjour à tous  :hello:  
 
voici un petit problème :
j'ai une fonction qui enregistre des news dans une BD et qui transmet à N utilisateurs un mail d'avertissement d'une nouvelle entrée.
 
Le problème est que pour un N<10 ça va mais pour un N>100 la page suivante met beaucoup de temps à venir (le temps que la fct d'envoi des mail() ait finie de s'exécuter).
Comment puis-je faire pour que ma fonction s'exécute en parallèle des autres de manière à ne pas bloquer l'utilisateur qui emet la news ! :hap:  
 
Merci
Alex01 :bounce:  




 
bin au lien d'envoyer 100* le meme mail, tu envois une fois le mail a 100 personnes. Ca fera une seule interaction avec ton serveur SMTP qui s'occupera du reste

 

[jfdsdjhfuetppo]--Message édité par darklord22--[/jfdsdjhfuetppo]


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 15:51:59    

Alex01 a écrit a écrit :

c'est à dire (JSP : c'est quel language ?) :??:  
rien à voir avec le JavaScript je pense ! :non:  
 
Peut il dialoguer avec PHP ? :??:  
 
Et java (servlets, n'est ce pas possible ?)
 :??:  
Merci
Alex01 :bounce:  




 
Java Server Page, la partie view d'un serveur en Java.
 
Bin non il peut pas dialoguer avec ton php mais un composant Servlet - Jsp peut très bien lire une bd et envoyez des mails


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 15:52:38    

darklord22 a écrit a écrit :

bin au lien d'envoyer 100* le meme mail, tu envois une fois le mail a 100 personnes. Ca fera une seule interaction avec ton serveur SMTP qui s'occupera du reste



Voire beaucoup mieux : tu installes un gestionnaire de mailing listes, et tu envoies un mail à l'adresse de la liste.

Reply

Marsh Posté le 26-02-2002 à 15:52:57    

Bonjour à toi  :hello:  
 
j'envoie 1 seul mail mais à 100 personnes ce qui fait bien 100 mails.
 
J'ai essayé de voir par rapport à ma connexion et mon serveur et le resultat : 16mails/30s donc c'est trop long !
 
A+
Alex01  :bounce:

Reply

Marsh Posté le 26-02-2002 à 15:52:57   

Reply

Marsh Posté le 26-02-2002 à 15:56:00    

Jar Jar a écrit a écrit :

 
Voire beaucoup mieux : tu installes un gestionnaire de mailing listes, et tu envoies un mail à l'adresse de la liste.  




 
Ok mais ça existe gratuitement et qui fonctionne sous windows2k ?
Si oui peux tu me donner des noms ?
 
merci
Alex01 :bounce:

Reply

Marsh Posté le 26-02-2002 à 15:56:35    

Alex01 a écrit a écrit :

 
 
j'envoie 1 seul mail mais à 100 personnes ce qui fait bien 100 mails.




 
Non, ca fait 1 mail mais tu mets des les peronnes en copies cachées


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 26-02-2002 à 15:58:09    

lord ii a écrit a écrit :

 
 
Non, ca fait 1 mail mais tu mets des les peronnes en copies cachées  




 
Tu me rassures :D

Reply

Marsh Posté le 26-02-2002 à 15:59:45    

lord ii a écrit a écrit :

 
 
Non, ca fait 1 mail mais tu mets des les peronnes en copies cachées  




 
Ce n'est pas idiot !
1 seul mail envoyé et 100 personnes qui le recoivent, je vais essayer tout de suite!
 
Merci :jap:  
Alex01

Reply

Marsh Posté le 26-02-2002 à 16:02:18    

Alex01 a écrit a écrit :

 
 
Ce n'est pas idiot !
1 seul mail envoyé et 100 personnes qui le recoivent, je vais essayer tout de suite!
 
Merci :jap:  
Alex01  




 
Ha c'était pas ce que tu faisais? bah ouep fait le tout de suite!!! :)

Reply

Marsh Posté le 26-02-2002 à 16:14:41    

Problème avec cette solution :
 
Le serveur Z envoie un mail au client X et en CCi (copie cachée) au client Y.
 
X voit que le mail lui est destiné (destinataire principal)(ok)
Y voit que le mail est destiné à X mais pas à lui (son nom n'apparait pas dans la ligne destinataire de sa messagerie mais bien celui de X).
 
Bref ça ne va pas !
Il faut que chaque destinataire puisse se voir en destinataire principal et non en copie.
 
Si il y a d'autres idées?
 
Alex01 :bounce:

Reply

Marsh Posté le 26-02-2002 à 16:23:01    

Alex01 a écrit a écrit :

Problème avec cette solution :
 
Le serveur Z envoie un mail au client X et en CCi (copie cachée) au client Y.
 
X voit que le mail lui est destiné (destinataire principal)(ok)
Y voit que le mail est destiné à X mais pas à lui (son nom n'apparait pas dans la ligne destinataire de sa messagerie mais bien celui de X).
 
Bref ça ne va pas !
Il faut que chaque destinataire puisse se voir en destinataire principal et non en copie.
 
Si il y a d'autres idées?
 
Alex01 :bounce:  




 
t'es bargeot toi d'envoyer 100* un mail :D


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 16:23:35    

Alex01 a écrit a écrit :

Problème avec cette solution :
 
Le serveur Z envoie un mail au client X et en CCi (copie cachée) au client Y.
 
X voit que le mail lui est destiné (destinataire principal)(ok)
Y voit que le mail est destiné à X mais pas à lui (son nom n'apparait pas dans la ligne destinataire de sa messagerie mais bien celui de X).
 
Bref ça ne va pas !
Il faut que chaque destinataire puisse se voir en destinataire principal et non en copie.
 
Si il y a d'autres idées?
 
Alex01 :bounce:  




 
mailing list. Ou bien tu dois déléguer ca à un processus serveur qui te rend la main directement. Pas faisable en PHP en tout cas


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 16:25:06    

Alex01 a écrit a écrit :

Ok mais ça existe gratuitement et qui fonctionne sous windows2k ?
Si oui peux tu me donner des noms ?



Décidément, tu aimes bien te compliquer la vie...

Reply

Marsh Posté le 26-02-2002 à 16:27:38    

pour envoyer 100* le meme mail et s'étonner que c'est lent je pense bien :D
 
 :hello:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 16:32:20    

Ok, donc comment faire en envoyant 1 mail pour que 100 autres personnes le recoivent en étant destinataire principal ?
 
Vous l'aurez compris, je suis dans le cas d'un Intranet !!!!
 
le pire c'est que ce n'est pas 100 personnes qui le doivent le reçevoir mais près de 300 ! bref 100 ou 300 le problème reste le même.
 
Alors ?????????????
Alex01

Reply

Marsh Posté le 26-02-2002 à 16:35:20    

tu mets le contact du site en tant que destinataire principal et tous les autres en cci


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 26-02-2002 à 16:38:38    

lord ii a écrit a écrit :

tu mets le contact du site en tant que destinataire principal et tous les autres en cci  




 
Qu'est ce que le contact du site ?

Reply

Marsh Posté le 26-02-2002 à 16:48:57    

bah c'est ton adresse par exemple, ou l'adresse de l'endroit ou il se sont inscrits. mais peut etre que si on met rien ca marche


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 26-02-2002 à 16:59:45    

Ok, ce n'est pas ce que je recherche !
bref on va faire sans sinon ça va devenir trop complex  :cry:  
 
Merci à tous
 
Alex01 :hello:

Reply

Marsh Posté le 26-02-2002 à 17:01:04    

essaye de ne pas mettre de destinataire principal pour voir si ca marche


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 26-02-2002 à 17:15:18    

je vais surement dire une connerie mais est-ce que ca serait pas possible de faire qqqchose comme ca en php :
 
1/ enregistrement de la news  
2/ generation (mais pas envoi) du mail (format html ou text) que tu sauves qqpart sur ton serveur: mail20020225-100825.txt
3/ generation de la liste des personnes a qui tu dois envoyer le mail: to20020225-100825.txt
4/ mise a jour du fichier qui te dis les mails a envoyer: mails.txt
    mail20020222-170315.txt|to20020222-170315.txt
    mail20020224-080755.txt|to20020224-080755.txt
    mail20020225-100825.txt|to20020225-100825.txt
5/ la page est renvoyée au client, ca n'a pris que qq millisecondes...
 
 
en parallele, toutes les x minutes, tu fais une requete sur ton serveur:
 http://blala.net/envoyer_les_mails_en_attente.php
ce script fait:
 1/ check si le script n'est pas deja lancé
 2/ check si il existe un fichier mails.txt
 3/ pour chaque ligne du fichier mails.txt
   3.1/ recuperer le mail et la liste des destinaraire (fichier mail??.txt et to??.txt)
   3.2/ envoyer le mail pour chaque destinaire
   3.3/ mettre a jour le fichier mails.txt (supprimer la ligne traitée)
 
 
 
z'en pensez quoi ? :??:
 
(tu peux bien sur utiliser une base de données a la place des fichiers, ca sera peut-etre plus pratique pour la mise a jour)

 

[jfdsdjhfuetppo]--Message édité par JWhy--[/jfdsdjhfuetppo]


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 26-02-2002 à 17:33:32    

[citationz'en pensez quoi ? :??:
 
(tu peux bien sur utiliser une base de données a la place des fichiers, ca sera peut-etre plus pratique pour la mise a jour)  
 
 
[/citation]
 
Bah écoute, déjà si tu trouves comment faire pour qu'un script se lance toutes les 10 minutes (par exemple) sur le serveur, fait le moi savoir, ça m'intéresse :)

Reply

Marsh Posté le 26-02-2002 à 17:36:59    

avec le taskscheduler de windows ou avec crontab sous unix ?


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 26-02-2002 à 17:38:05    

ah la la ;) En utilisant Java ca n'arriverait pas des trucs pareils :D
 
non je déconne. Avec un CGI y a moyen non?


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 17:42:13    

JWhy a écrit a écrit :

avec le taskscheduler de windows ou avec crontab sous unix ?  




 
php.exe -f ton_script.php (d'apres la doc)
 
et si tu ne peux pas lancer le script directos (ie. ce n'est pas ton serveur, tu utilises un hebergeur gratos ou autres...), tu peux sans doute lancer un "iexplorer.exe http://tonsite.free.fr/ton_script.php" sur un poste qui reste allumé en permanence...
 
(la meme chose doit exister sous unix, je pense)

 

[jfdsdjhfuetppo]--Message édité par JWhy--[/jfdsdjhfuetppo]


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 26-02-2002 à 21:03:01    

En fait, ce qu'il faudrait c'est préparer les mails sous un format quelconque avec l'adresse de chaque destinataire et exécuter un programme à part (java, c, toto) qui transmette les mails indépendament du processus PHP.  
Bref, pas besoins d'être connecté avec IE ou autres pour que ça fonctionne !
 
PHP prépare les fichiers mails et les enregistres dans une BD ou sur le disque, lance un progamme indépendant.
Le programme indépendant se charge de les transmettre puis les effaces.
 
Mais ce n'est pas simple !!!!
 
Alex01 :bounce:

Reply

Marsh Posté le 26-02-2002 à 21:08:25    

bin si c'est très simple au contraire mais il faut que ton hébergeur supporte java ce qui est loin d'etre simple (pour la solution que je connais)


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 21:11:31    

l'hebergeur c'est moi car il s'agit d'un Intranet et que je suis le Webmaster donc je met ce que je veux sur mon serveur  ;)  
 
explique comment je peux faire s'il te plait  :hap:  
 
Alex01 :bounce:

Reply

Marsh Posté le 26-02-2002 à 21:13:27    

bin faut mixer du JSP et du PHP c'est pas ce qu'il y a de plus propre en fait. Je connais pas du tout PHP mais c'est très simple de faire un trhead en java qui prend ton mail et la liste de tes invités et qui s'amuse à envoyer le mail en // du reste
 
Pas super propre comme solution en fait ... Mais bon si tu connais java je peux faire une ébauche mais j'ai pas envie que ca serve à rien


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 26-02-2002 à 21:17:40    

Je connais java mais pas suffisamment pour ça !
 
peux tu juste me donner les grandes lignes et je chercherais comment faire le programme dans mes bouquins !
 
Alex01

Reply

Marsh Posté le 26-02-2002 à 21:35:37    

bon file moi ton mail je vais te filer une ébauche


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed