|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
Problème AJAXExécuteAsynchrone |
Iniciado por Monsieur DOUCET, 20,may. 2018 21:57 - 8 respuestas |
| |
| | | |
|
| |
Miembro registrado 16 mensajes |
|
Publicado el 20,mayo 2018 - 21:57 |
Hello à toutes et tous. Pour mon projet, j'exécute un scripts sh qui dure environ 2 minutes.
Code retour traitement ajax du bouton :
nRes est un entier nRes =AJAXExécuteAsynchrone(ajaxActualiseChamps,iperf_bouygues,bouygues_nav)
Code serveur "iperf_bouygue" :
SI SAI_fti ="" ALORS error_log("Fti non renseigné","Test débit derrière ont","") RENVOYER 1 FIN
sIdnom est une chaîne sIdnom =gsDoss_tmp+"error.log" snom_down est une chaîne snom_down =gsDoss_tmp+"iperf_download.txt" snom_up est une chaîne snom_up =gsDoss_tmp+"iperf_upload.txt" sDebit_down est une chaîne sDebit_up est une chaîne
SI fFichierExiste(snom_down) =Vrai ALORS fSupprime(snom_down) FIN SI fFichierExiste(snom_up) =Vrai ALORS fSupprime(snom_up) FIN
SI fFichierExiste(sIdnom) =Vrai ALORS fSupprime(sIdnom) FIN sIdentifiant est une chaîne sTexte est une chaîne
SELON ChaîneCommencePar(SAI_fti,"fti/") CAS 0 sIdentifiant =SAI_fti AUTRE CAS sIdentifiant =ChaîneSupprime(SAI_fti,"fti/",SansCasse) FIN
sTexte =LanceAppli("/bin/bash /diagbox/scripts_sh/iperf_bouygues_ont.sh"+" "+sIdentifiant)
nIDFichier est un entier sIdlire est une chaîne
nIDFichier =fOuvre(sIdnom,foLectureEcriture)
SELON nIDFichier CAS -1 error_log("Echec ouverture logs erreur tempo ","Test débit derrière ont","Pour vérifier s'il y a eu une erreur") RENVOYER 2 AUTRE CAS sIdlire =fLitLigne(nIDFichier) SELON sIdlire CAS "ok" nId_down est un entier sDown_lire est une chaîne nId_down =fOuvre(snom_down) SELON nId_down CAS -1 error_log("Echec ouverture fichier débit download ","Test débit derrière ont","") RENVOYER 2 AUTRE CAS sDown_lire =fLitLigne(nId_down) SI sDown_lire ="" ALORS fSupprime(snom_down) error_log("Echec test débit download ","Test débit derrière ont","fichier test debit download vide") RENVOYER 2 SINON sDebit_down =ExtraitChaîne(sDown_lire,3," ",DepuisFin)+" "+"Mbits/s" fSupprime(snom_down) FIN FIN nId_up est un entier sup_lire est une chaîne nId_up =fOuvre(snom_up) SELON nId_up CAS -1 error_log("Echec ouverture fichier débit upload ","Test débit derrière ont","fichier test debit upload vide") RENVOYER 2 AUTRE CAS sup_lire =fLitLigne(nId_up) SI sup_lire ="" ALORS fSupprime(snom_up) error_log("Echec test débit upload","Test débit derrière ont","") RENVOYER 2 SINON sDebit_up =ExtraitChaîne(sup_lire,3," ",DepuisFin)+" "+"Mbits/s" fSupprime(snom_up) FIN FIN SELON connexion_local() CAS 1 test_debit.date =DateVersChaîne(DateSys(),"JJ/MM/AAAA") test_debit.heure =HeureVersChaîne(HeureSys(),"HH:MM:SS") sCuid_test est une chaîne sCuid_test =INILit("info tech","cuid","",gsIni_systeme) SI sCuid_test ="" ALORS test_debit.cuid ="" SINON test_debit.cuid =sCuid_test FIN test_debit.debit_down =sDebit_down test_debit.debit_up =sDebit_up test_debit.ping ="" sNd_test est une chaîne sNd_test =PAGE_p_testdebit.SAI_nd SI sNd_test ="" ALORS test_debit.nd ="" SINON test_debit.nd =sNd_test FIN test_debit.serveur ="bouygues" SI HAjoute(test_debit) =Faux ALORS error_log("Echec historisation test dans la bdd locale ","Test débit derrière ont","") FIN RENVOYER 3 AUTRE CAS error_log("Echec ouverture bdd locale ","Test débit derrière ont","") RENVOYER 3 FIN AUTRE CAS error_log("Echec test débit ","Test débit derrière ont",sIdlire) RENVOYER 2 FIN FIN
Code navigateur "bouygues_nav" :
Procedure bouygues_nav(Renvoiee,nRes) SELON Renvoiee CAS 1 POPUP_info.ZTR_SansNom1 ="fti obligatoire" POPUP_info.IMG_Error..Visible =Vrai POPUP_info.IMG_info..Visible =Faux PopupAffiche(POPUP_info,popupCentre) CAS 2 POPUP_info.ZTR_SansNom1 ="Echec test débit."+RC+"Pour plus d'informations, voir le log erreurs" POPUP_info.IMG_Error..Visible =Vrai POPUP_info.IMG_info..Visible =Faux PopupAffiche(POPUP_info,popupCentre) CAS 3 PageAffiche(PAGE_p_ont) FIN
=====> dans le dernier code : Quand c'est le cas 1 ou 2 ça fonctionne ( quand il y a une erreur )
Par contre pour le cas 3, on dirait que le code serveur ne va pas jusqu'au bout.
test_debit.date =DateVersChaîne(DateSys(),"JJ/MM/AAAA") test_debit.heure =HeureVersChaîne(HeureSys(),"HH:MM:SS") sCuid_test est une chaîne sCuid_test =INILit("info tech","cuid","",gsIni_systeme) SI sCuid_test ="" ALORS test_debit.cuid ="" SINON test_debit.cuid =sCuid_test FIN test_debit.debit_down =sDebit_down test_debit.debit_up =sDebit_up test_debit.ping ="" sNd_test est une chaîne sNd_test =PAGE_p_testdebit.SAI_nd SI sNd_test ="" ALORS test_debit.nd ="" SINON test_debit.nd =sNd_test FIN test_debit.serveur ="bouygues" SI HAjoute(test_debit) =Faux ALORS error_log("Echec historisation test dans la bdd locale ","Test débit derrière ont","") FIN RENVOYER 3
Pour être plus explicite, j'enregistre les résultats dans une base de données et renvoie la valeur 3 (dans le code serveur ajax). Puis dans le code retour ajax du bouton, j'ouvre une page.
L'enregistrement dans la base de données se fait bien mais après plus rien, on dirait que le code s'arrete car je n'ai pas l'action suivante.
si quelqu'un a une idée ça fait deux semaines je suis dessus. Merci d'avance |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 950 mensajes Popularité : +53 (63 votes) |
|
Publicado el 21,mayo 2018 - 01:07 |
Bonjour,
Essaye de passer le champs de saisie de ta page en paramètre plutôt que de l'appeler directement à cette ligne la
sNd_test =PAGE_p_testdebit.SAI_nd
Jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 16 mensajes |
|
Publicado el 21,mayo 2018 - 16:30 |
Hello. Merci pour ta réponse. J'ai essayé ce qui tu me proposes mais en vain.
Voici le contenu du script au cas où :
#!/bin/bash #Effacer les fichier tempo si presents if [ -f "/diagbox/web/tmp/dhclient.conf" ];then echo "Le fichier de configuration existe !"; if sudo rm /diagbox/web/tmp/dhclient.conf; then echo "fichier dhclient efface" else echo "Echec suppression tempo dhclient deja existant" >> /diagbox/web/tmp/error.log exit fi fi
if [ -f "/diagbox/web/tmp/iperf_upload.txt" ];then echo "Le fichier de iperf upload existe !"; if sudo rm /diagbox/web/tmp/iperf_upload.txt; then echo "fichier iperf upload efface" else echo "Echec suppression tempo iperf upload deja existant" >> /diagbox/web/tmp/error.log exit fi fi
if [ -f "/diagbox/web/tmp/iperf_download.txt" ];then echo "Le fichier de iperf download existe !"; if sudo rm /diagbox/web/tmp/iperf_download.txt; then echo "fichier iperf download efface" else echo "Echec suppression tempo iperf download deja existant" >> /diagbox/web/tmp/error.log exit fi fi
if [ -f "/diagbox/web/tmp/error.log" ];then echo "Le fichier log erreur existe !"; if sudo rm /diagbox/web/tmp/error.log; then echo "fichier log erreur efface" else echo "Echec suppressionfichier log deja existant" >> /diagbox/web/tmp/error.log exit fi fi
#fti conversion USERNAME=$1 AUTHSTRING=00:00:00:00:00:00:00:00:00:00:00:66:74:69:2f for (( i=0; i<${#USERNAME}; i++ )); do HEXCHAR=$(echo -n ${USERNAME:$i:1} | od -An -txC | xargs) AUTHSTRING=${AUTHSTRING}:${HEXCHAR} done echo ${AUTHSTRING}
#Fichier dhclient #Ecriture echo 'option rfc3118-authentication code 90 = string;' >> /diagbox/web/tmp/dhclient.conf echo "interface \"orange\" {" >> /diagbox/web/tmp/dhclient.conf echo "send vendor-class-identifier \"sagem\";" >> /diagbox/web/tmp/dhclient.conf echo "send user-class \"+FSVDSL_livebox.Internet.softathome.Livebox3\";" >> /diagbox/web/tmp/dhclient.conf echo "send rfc3118-authentication ${AUTHSTRING} ;" >> /diagbox/web/tmp/dhclient.conf echo 'request subnet-mask, routers,' >> /diagbox/web/tmp/dhclient.conf echo 'domain-name, broadcast-address, dhcp-lease-time,' >> /diagbox/web/tmp/dhclient.conf echo 'dhcp-renewal-time, dhcp-rebinding-time,' >> /diagbox/web/tmp/dhclient.conf echo 'rfc3118-authentication;' >> /diagbox/web/tmp/dhclient.conf echo 'supersede domain-name-servers 8.8.8.8, 8.8.4.4;' >> /diagbox/web/tmp/dhclient.conf echo '}' >> /diagbox/web/tmp/dhclient.conf
#Deplacement if sudo cp /diagbox/web/tmp/dhclient.conf /etc/dhcp/dhclient.conf; then echo 'fichier dhclient modifie'; else echo "Echec déplacement fichier dhclient" >> /diagbox/web/tmp/error.log exit fi
#iptables if sudo cp /etc/iptables.ipv4.nat.backup_rescue_dhcp /etc/iptables.ipv4.nat; then echo 'fichier iptables modifié'; else echo "Echec déplacement fichier iptables" >> /diagbox/web/tmp/error.log exit fi sudo iptables-restore < /etc/iptables.ipv4.nat
#Modification interfaces eth0 if sudo ifdown eth0; then echo 'arret eth0'; else echo "Echec arret ethO" >> /diagbox/web/tmp/error.log exit fi
if sudo cp /etc/network/interfaces_RESCUE_DHCP /etc/network/interfaces; then echo 'configuration interfaces modifié'; else echo "Echec modification configuration ethO" >> /diagbox/web/tmp/error.log exit fi
if sudo ifup -a; then echo 'activation interfaces'; else echo "Echec activation interfaces" >> /diagbox/web/tmp/error.log exit fi
for i in 0 1 2 3 4 5 6 7; do ## on définit pour chaque file une priorité if sudo vconfig set_egress_map orange $i $i >/dev/null; then echo "definition priorité ok" else echo "definition priorité ko" fi done if sudo vconfig set_egress_map orange 1 0 >/dev/null; then echo " priorité 1 ok" else echo " priorité 1 ko" fi if sudo vconfig set_egress_map orange 0 6 >/dev/null; then echo " priorité 2 ok" else echo " priorité 2 ko" fi sudo iptables -t mangle -A POSTROUTING -o orange -j CLASSIFY --set-class 0000:0001 sudo iptables -t mangle -A POSTROUTING -o orange -p igmp -j CLASSIFY --set-class 0000:0006 sudo iptables -t mangle -A POSTROUTING -o orange -p icmp -j CLASSIFY --set-class 0000:0006 sudo iptables -t mangle -A POSTROUTING -o orange -m dscp --dscp 0x2e -j CLASSIFY --set-class 0000:0005 sudo iptables -t mangle -A POSTROUTING -o orange -p udp --dport 67 -j CLASSIFY --set-class 0000:0006
sleep 10 #Test 8 pings sudo ping 8.8.8.8 -c2 -q if [ $? != 1 ]; then echo "connexion derrière ont opérationnel" #test débit #test débit for port in 520{2..9}; do iperf3 -c bouygues.iperf.fr -4 -O 10 -t 20 -p $port | \ awk -v msgPort="Port $port =>" ' { if ($2 == "error") print msgPort, $0 >> "/diagbox/web/tmp/erreursIperf_upload.txt" else if ($NF ~ "sender|receiver") print msgPort, $7, $8, $NF >> "/diagbox/web/tmp/iperf_upload.txt" }' [[ ${PIPESTATUS[0]} == 0 ]] && break done #Download for port in 520{2..9}; do iperf3 -c bouygues.iperf.fr -4 -O 5 -R -p $port | \ awk -v msgPort="Port $port =>" ' { if ($2 == "error") print msgPort, $0 >> "/diagbox/web/tmp/erreursIperf_download.txt" else if ($NF ~ "sender|receiver") print msgPort, $7, $8, $NF >> "/diagbox/web/tmp/iperf_download.txt" }' [[ ${PIPESTATUS[0]} == 0 ]] && break done #Remise en etat DHCP non rescue #dhclient if sudo cp /etc/dhcp/dhclient.conf.backup_orig /etc/dhcp/dhclient.conf; then echo 'fichier dhclient modifie'; else echo "Echec remise dhclient original" >> /diagbox/web/tmp/error.log exit fi
#iptables if sudo cp /etc/iptables.ipv4.nat.backup_diagbox /etc/iptables.ipv4.nat; then echo 'fichier iptables modifié'; else echo "Echec remise fichier iptables origine" >> /diagbox/web/tmp/error.log exit fi sudo iptables-restore < /etc/iptables.ipv4.nat
#Modification interfaces eth0 if sudo ifdown eth0; then echo 'arret eth0'; else echo "Echec arret ethO" >> /diagbox/web/tmp/error.log exit fi
if sudo ifdown orange; then echo 'arret orange'; else echo "Echec arret orange" >> /diagbox/web/tmp/error.log exit fi
if sudo cp /etc/network/interfaces_DHCP /etc/network/interfaces; then echo 'configuration interfaces modifié'; else echo "Echec modification configuration ethO" >> /diagbox/web/tmp/error.log exit fi
if sudo ifup eth0; then echo 'activation eth0'; else echo "Echec activation ethO" >> /diagbox/web/tmp/error.log exit fi #Effacer les fichiers tempo if sudo rm /diagbox/web/tmp/dhclient.conf; then echo "Fichier tempo dhclient efface" else echo "Echec effacement fichier tempo dhclient " fi sudo iptables -t mangle -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -t mangle -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -t mangle -A FORWARD -i wlan0 -o eth0 -j ACCEPT #fini echo "ok" >> /diagbox/web/tmp/error.log else echo "Echec ping" >> /diagbox/web/tmp/error.log exit fi |
| |
| |
| | | |
|
| | |
| |
Publicado el 23,mayo 2018 - 15:22 |
Le 21/05/2018 à 14:30, Monsieur DOUCET a écrit :
Hello. Merci pour ta réponse. J'ai essayé ce qui tu me proposes mais en vain.
Voici le contenu du script au cas où :
[code:text]
j'espere juste que ta connexion ajax au serveur ne passe pas par celle que tu testes, vu la connexion est coupée ( ifdown eth0). |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 16 mensajes |
|
Publicado el 23,mayo 2018 - 23:01 |
Hello Merci pour ta réponse . Il y a deux connexions : -wifi type hotspot de la tablette ou pc vers la carte(asus tinkerboard) -rj45 la carte a l'ont. (pour bypasser la box et etre en direcr). Pensant que le wifi prime( vu qu'il ne tombe pas . Mais je vais explorer ta piste demain, |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 950 mensajes Popularité : +53 (63 votes) |
|
Publicado el 24,mayo 2018 - 01:05 |
En combien de temps s'exécute ton script ? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 16 mensajes |
|
Publicado el 27,mayo 2018 - 01:02 |
Hello Il met un peu moins de 3 min, cest trop ? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 950 mensajes Popularité : +53 (63 votes) |
|
Publicado el 27,mayo 2018 - 13:10 |
Bonjour,
il s'agit peut-etre d'un timeout au niveau du serveur,
Essaye de lancer un script qui s'execute en moins d'une minute,
Ton serveur d'application est configurer comment au niveau des time-out ?
jordan |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 16 mensajes |
|
Publicado el 27,mayo 2018 - 22:47 |
Hello Les scripts ne durant pas longtemps(en dessous d'1minute 30) passent bien. J'ai modifie le timeout de nginx je l'ai mis a 6minutes pour etre large. Toujours pareil. Ce qui est bizarre c'est que le code enrefistre dans ma base de donnees et cette action, c'est l'avant derniere. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|