Script qui boucle en mutualisé ?
Résolu/Fermé
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
-
Modifié par jiantox le 2/01/2016 à 13:31
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 - 5 janv. 2016 à 22:11
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 - 5 janv. 2016 à 22:11
A voir également:
- Script qui boucle en mutualisé ?
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Boucle cmd - Forum Programmation
6 réponses
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
3 janv. 2016 à 04:36
3 janv. 2016 à 04:36
Personnellement, je téléguiderais plutôt ça d'une machine sur laquelle j'ai la main, genre un serveur chez moi, même si ça expose à une interruption du lancement si la machine qui contrôle le truc est déconnectée du net ou éteinte. Après c'est peut être pas la meilleure façon de faire.
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
Modifié par ryko1820 le 3/01/2016 à 13:20
Modifié par ryko1820 le 3/01/2016 à 13:20
J'avais un doute, parce que je l'ai jamais utilisé mais chez OVH il y a la possibilité de lancer des tâches planifiées ...
https://docs.ovh.com/fr/hosting/mutualise-taches-automatisees-cron/
Cependant parmi les limitations :
Contrairement au dédié avec lequel on peut faire ce qu'on veut ... https://docs.ovh.com/fr/
Pour l'arrêt sur demande, l'écriture/dépot/effacement par ftp d'un petit fichier sur le serveur (scriptable depuis ton poste client avec curl), fichier dont l'existence serait testée dans le script du serveur. C'est un peu barbare mais c'est le premier truc qui me vient à l'esprit :-) Ne pas oublier de l'effacer quand on veut relancer ...
Je ne sais pas suivant quelle fréquence tu veux lancer ta tâche. Il doit être possible d'essayer ton sleep dans un while true qui s’arrête au bout de 59 mn sinon, au risque de recevoir un mail d'ovh. Voir si il y a une marge de tolérance de ce coté et a quelle niveau elle se situe (seconde(s) / minute(s) ?).
You may stop me but you can't stop us all ;-)
https://docs.ovh.com/fr/hosting/mutualise-taches-automatisees-cron/
Cependant parmi les limitations :
Limitations
En hébergement mutualisé, il n'est pas possible de configurer les minutes à laquelle la tâche automatisée doit s’exécuter. De plus, celle-ci ne peut être exécutée qu'une fois par heure.
Contrairement au dédié avec lequel on peut faire ce qu'on veut ... https://docs.ovh.com/fr/
Pour l'arrêt sur demande, l'écriture/dépot/effacement par ftp d'un petit fichier sur le serveur (scriptable depuis ton poste client avec curl), fichier dont l'existence serait testée dans le script du serveur. C'est un peu barbare mais c'est le premier truc qui me vient à l'esprit :-) Ne pas oublier de l'effacer quand on veut relancer ...
Je ne sais pas suivant quelle fréquence tu veux lancer ta tâche. Il doit être possible d'essayer ton sleep dans un while true qui s’arrête au bout de 59 mn sinon, au risque de recevoir un mail d'ovh. Voir si il y a une marge de tolérance de ce coté et a quelle niveau elle se situe (seconde(s) / minute(s) ?).
You may stop me but you can't stop us all ;-)
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
3 janv. 2016 à 13:10
3 janv. 2016 à 13:10
Il faut que mon script boucle plusieurs fois par secondes :/
Oui en dédié je serais tranquille mais c'est pas le même budget ^^.
Merci quand même pour ces propositions
Oui en dédié je serais tranquille mais c'est pas le même budget ^^.
Merci quand même pour ces propositions
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
3 janv. 2016 à 13:27
3 janv. 2016 à 13:27
>> plusieurs fois par secondes :/
Ah oui violent quand même :p
J'espère que tu auras des réponses ... Sinon tiens nous au courant ça m'intéresse de connaitre la suite ...
Ah oui violent quand même :p
J'espère que tu auras des réponses ... Sinon tiens nous au courant ça m'intéresse de connaitre la suite ...
ryko1820
Messages postés
1677
Date d'inscription
dimanche 28 avril 2013
Statut
Membre
Dernière intervention
15 août 2021
276
3 janv. 2016 à 15:31
3 janv. 2016 à 15:31
Je viens de tomber la-dessus.
https://forum.ovh.com/showthread.php/106954-T%C3%A2che-cron-avec-boucle-while-infinie-autoris%C3%A9e
Donc va falloir que tu trouves une autre solution.
https://forum.ovh.com/showthread.php/106954-T%C3%A2che-cron-avec-boucle-while-infinie-autoris%C3%A9e
Donc va falloir que tu trouves une autre solution.
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
3 janv. 2016 à 16:03
3 janv. 2016 à 16:03
Arf :/ merci quand même
jordane45
Messages postés
38441
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2025
4 737
3 janv. 2016 à 16:15
3 janv. 2016 à 16:15
Bonjour,
Je n'ai aucune solution à te proposer .... mais
moi j'ai un souci concernant ton besoin......
L'ajax ne peut être utilisé (et ne toutes façons ne sert....) QUE dans une page AFFICHEE ...... (surtout quand c'est juste pour actualiser le contenu d'une page.....)
Quel est l’intérêt de vouloir le faire tourner lorsque personne n'est sur la page en question ?
Pöurquoi ne pas actualiser le contenu de la page .... que quand quelqu'un est dessus ???
Je n'ai aucune solution à te proposer .... mais
moi j'ai un souci concernant ton besoin......
j'ai un soucis assez simple : Actuellement j'ai créé une sorte de "robot" en ajax qui tourne quand je suis sur la page et je suis le seul a pouvoir le lancer.
Ce "robot" récupère des valeurs en base de donnée et les renvoie sur ma page quasi instantanément.
L'ajax ne peut être utilisé (et ne toutes façons ne sert....) QUE dans une page AFFICHEE ...... (surtout quand c'est juste pour actualiser le contenu d'une page.....)
Quel est l’intérêt de vouloir le faire tourner lorsque personne n'est sur la page en question ?
Pöurquoi ne pas actualiser le contenu de la page .... que quand quelqu'un est dessus ???
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
3 janv. 2016 à 16:48
3 janv. 2016 à 16:48
Le but de ce robot est qu'il insère à interval régulier (genre toute les 5 mins) une donnée en bdd. Hors si il est activé en ajax, chaque utilisateur va le faire boucler.
Il faudrait alors qu'il soit activer que par une seule personne (moi) mais je ne peux pas laisser un pc tourner 24/24 pour ça.
Ce que ce robot doit aussi faire c'est vérifier à interval beaucoup plus réguliers (plusieurs fois par seconde pour être le plus instantané possible) le contenu d'une base de donnée.
Je viens de penser à une solution que je testerais prochainement :
Lorsqu'un utilisateur se connecte, il lance l'ajax. Dans mon script je vérifie grâce à une valeur en bdd si le script à déjà été activé par quelqu'un d'autre (si le "robot" est en train de tourner).
- Si non, j'actualise la valeur de la bdd et l'utilisateur crée la boucle depuis son navigateur.
- Si oui, le script ne fait rien puisque l'autre personne est déjà en train de le faire tourner.
Du coup lorsque la personne qui le fait tourner se déco je vérifie grâce à un autre visiteur si une valeur timestamp est toujours à jour, si oui c'est que l'utilisateur est co et que le robot tourne toujours, si non ce nouvel utilisateur fait tourner le robot.
Le hic c'est : si l'ajax qui tourne chez plusieurs utilisateurs en même temps "prend la main" sur le robot en même temps, il va se mettre à tourner de travers (se déconnecter vu que quelqu'un est connecté, se reconnecter vu que plus personne ne l'active...)
qu'en pensez-vous ?
Il faudrait alors qu'il soit activer que par une seule personne (moi) mais je ne peux pas laisser un pc tourner 24/24 pour ça.
Ce que ce robot doit aussi faire c'est vérifier à interval beaucoup plus réguliers (plusieurs fois par seconde pour être le plus instantané possible) le contenu d'une base de donnée.
Je viens de penser à une solution que je testerais prochainement :
Lorsqu'un utilisateur se connecte, il lance l'ajax. Dans mon script je vérifie grâce à une valeur en bdd si le script à déjà été activé par quelqu'un d'autre (si le "robot" est en train de tourner).
- Si non, j'actualise la valeur de la bdd et l'utilisateur crée la boucle depuis son navigateur.
- Si oui, le script ne fait rien puisque l'autre personne est déjà en train de le faire tourner.
Du coup lorsque la personne qui le fait tourner se déco je vérifie grâce à un autre visiteur si une valeur timestamp est toujours à jour, si oui c'est que l'utilisateur est co et que le robot tourne toujours, si non ce nouvel utilisateur fait tourner le robot.
Le hic c'est : si l'ajax qui tourne chez plusieurs utilisateurs en même temps "prend la main" sur le robot en même temps, il va se mettre à tourner de travers (se déconnecter vu que quelqu'un est connecté, se reconnecter vu que plus personne ne l'active...)
qu'en pensez-vous ?
jordane45
Messages postés
38441
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2025
4 737
>
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
3 janv. 2016 à 18:49
3 janv. 2016 à 18:49
Je pense qu'il y un souci de conception....
-Et... Que se passe-t'il si, pendant un certain laps de temps, personne n'est connecté à ton site ?
-Quelle est donc cette information qui doit absolument être mise à jour toutes les secondes et qui ne saurait être calculée uniquement lors de l'affichage de la page ??
-Et... Que se passe-t'il si, pendant un certain laps de temps, personne n'est connecté à ton site ?
-Quelle est donc cette information qui doit absolument être mise à jour toutes les secondes et qui ne saurait être calculée uniquement lors de l'affichage de la page ??
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
3 janv. 2016 à 19:15
3 janv. 2016 à 19:15
Lorsque personne n'est connecté au site, il ne se passe rien du coup.
Cette information mise à jour très souvent ne l'est que quand certaines valeurs se trouve dans ma base de donnée. Et ces valeur est envoyée en ajax par l'utilisateur.
Le soucis en soit n'est pas dans cette requête récurrente puisque le "robot" peut être appelé au moment ou l'utilisateur envoie l'info, mais dans l'insertion de l'info à intervalle régulier
En gros je reformule le problème :
Comment insérer une ligne en bdd à intervalle régulier ?
Cette information mise à jour très souvent ne l'est que quand certaines valeurs se trouve dans ma base de donnée. Et ces valeur est envoyée en ajax par l'utilisateur.
Le soucis en soit n'est pas dans cette requête récurrente puisque le "robot" peut être appelé au moment ou l'utilisateur envoie l'info, mais dans l'insertion de l'info à intervalle régulier
En gros je reformule le problème :
Comment insérer une ligne en bdd à intervalle régulier ?
jordane45
Messages postés
38441
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2025
4 737
>
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
3 janv. 2016 à 20:04
3 janv. 2016 à 20:04
Pas besoin de reformuler ..... j'avais très bien compris ce que tu voulais faire....
mais moi j'essaie de te faire comprendre que ce que tu souhaites faire.... n'est peut-être (même sûrement...) pas LA meilleur façon de faire !
Donc je vais essayer moi aussi de reformuler :
Qu'est-ce qui justifie le fait de faire une insertion en BDD à intervalle régulier (que si des utilisateurs sont connecté qui plus est....) ??????
Pourquoi ne pas simplement effectuer le calcul (car je suppose que ce sont des calculs... ) lorsque tu en as besoin (au moment de l'afficher ... et non en arrière plan via un pseudo robot à la noix..... qui ne saurait, de toutes façons être fait en AJAX )
mais moi j'essaie de te faire comprendre que ce que tu souhaites faire.... n'est peut-être (même sûrement...) pas LA meilleur façon de faire !
Donc je vais essayer moi aussi de reformuler :
Qu'est-ce qui justifie le fait de faire une insertion en BDD à intervalle régulier (que si des utilisateurs sont connecté qui plus est....) ??????
Pourquoi ne pas simplement effectuer le calcul (car je suppose que ce sont des calculs... ) lorsque tu en as besoin (au moment de l'afficher ... et non en arrière plan via un pseudo robot à la noix..... qui ne saurait, de toutes façons être fait en AJAX )
tant que tu n'auras pas répondu à ces questions.... IMPOSSIBLE de t'aider !
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
3 janv. 2016 à 20:32
3 janv. 2016 à 20:32
Et bien tout simplement pour afficher une information à tout les utilisateurs au même moment.
De cette manière même si un utilisateur arrive 3 minute après un autre, ils auront le message quand même en même temps
De cette manière même si un utilisateur arrive 3 minute après un autre, ils auront le message quand même en même temps
totodunet
Messages postés
1377
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
5 mars 2020
199
Modifié par totodunet le 3/01/2016 à 22:08
Modifié par totodunet le 3/01/2016 à 22:08
Bonjour,
Il y a des choses qui m'échappent dans ton sujet. Tu dois te mélanger entre serveur et client. AJAX est une technologie côté client on est d'accord. Je ne comprend pas pourquoi ton robot écrit en AJAX (donc présent au niveau client), tu veuilles le faire tourner 24h/24.
Si je pense savoir ce que tu veux faire, à savoir une interaction en continue entre ton serveur et ton client (d'où le pourquoi tu as fait des boucles dans ton script Ajax), renseignes-toi plutôt sur la techno WebSocket (qui fonctionne par un système de notifications lors d'un changement d'état). Elle a été conçue pour ça. Après pour des insertions en BDD, j'ai dû mal à savoir ce que tu dois insérer toutes les xx secondes.
Qui ne tente rien n'a rien
Il y a des choses qui m'échappent dans ton sujet. Tu dois te mélanger entre serveur et client. AJAX est une technologie côté client on est d'accord. Je ne comprend pas pourquoi ton robot écrit en AJAX (donc présent au niveau client), tu veuilles le faire tourner 24h/24.
Si je pense savoir ce que tu veux faire, à savoir une interaction en continue entre ton serveur et ton client (d'où le pourquoi tu as fait des boucles dans ton script Ajax), renseignes-toi plutôt sur la techno WebSocket (qui fonctionne par un système de notifications lors d'un changement d'état). Elle a été conçue pour ça. Après pour des insertions en BDD, j'ai dû mal à savoir ce que tu dois insérer toutes les xx secondes.
Qui ne tente rien n'a rien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
4 janv. 2016 à 10:17
4 janv. 2016 à 10:17
C'est pas très facile d'expliquer, d'autant que sous contrat je ne peut rien dire de concret :/
En gros pour le soucis de la vérification en bdd toute les secondes j'ai fait autrement.
Où je bloque toujours c'est en gros pour insérer une valeur en bdd toute les 5 minutes disons.
Le faire en ajax s'avère compliqué étant donné que chacun des utilisateurs va l'activer.
Du coup la question initiale est maintenant :
Comment insérer une valeur en bdd à intervalle de temps précis ?
En gros pour le soucis de la vérification en bdd toute les secondes j'ai fait autrement.
Où je bloque toujours c'est en gros pour insérer une valeur en bdd toute les 5 minutes disons.
Le faire en ajax s'avère compliqué étant donné que chacun des utilisateurs va l'activer.
Du coup la question initiale est maintenant :
Comment insérer une valeur en bdd à intervalle de temps précis ?
jordane45
Messages postés
38441
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 février 2025
4 737
4 janv. 2016 à 10:21
4 janv. 2016 à 10:21
..........Oo.......
Je ne vois aucune solution pour faire tourner un script sur un serveur mutualisé ....
Et A mon avis... cela n'est pas nécéssaire ....
Mais .....malheureusement ..... vu que nous ne savons toujours pas ..... quelle type d'information doit être, selon toi, insérée en BDD toutes les x minutes..... IMPOSSIBLE de te répondre.
Je ne vois aucune solution pour faire tourner un script sur un serveur mutualisé ....
Et A mon avis... cela n'est pas nécéssaire ....
Mais .....malheureusement ..... vu que nous ne savons toujours pas ..... quelle type d'information doit être, selon toi, insérée en BDD toutes les x minutes..... IMPOSSIBLE de te répondre.
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
4 janv. 2016 à 10:27
4 janv. 2016 à 10:27
C'est une simple phrase qui doit être insérée toute les minutes. Mais je veux qu'elle soit en bdd pour pouvoir être affichée en ajax simultanément chez tous les utilisateurs.
sinon j'aurais fait une simple requête ajax qui boucle toute les 5 mins chez l'utilisateur uniquement mais, étant donné que les gens n'arrivent pas forcément en même temps, ils n'auraient pas eu l'info en même temps.
D'où mon intérêt de vouloir insérer une valeur toute les 5 minutes. Comme ça lorsqu'elle se trouve dans ma base de donnée, mon script qui boucle (et vérifie si une nouvelle valeur a été ajoutée) l'affiche, à tout le monde, en même temps.
sinon j'aurais fait une simple requête ajax qui boucle toute les 5 mins chez l'utilisateur uniquement mais, étant donné que les gens n'arrivent pas forcément en même temps, ils n'auraient pas eu l'info en même temps.
D'où mon intérêt de vouloir insérer une valeur toute les 5 minutes. Comme ça lorsqu'elle se trouve dans ma base de donnée, mon script qui boucle (et vérifie si une nouvelle valeur a été ajoutée) l'affiche, à tout le monde, en même temps.
totodunet
Messages postés
1377
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
5 mars 2020
199
4 janv. 2016 à 12:45
4 janv. 2016 à 12:45
" sinon j'aurais fait une simple requête ajax qui boucle toute les 5 mins chez l'utilisateur uniquement mais, étant donné que les gens n'arrivent pas forcément en même temps, ils n'auraient pas eu l'info en même temps. D'où mon intérêt de vouloir insérer une valeur toute les 5 minutes. "
c'est là que je comprend pas très bien
c'est là que je comprend pas très bien
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
>
totodunet
Messages postés
1377
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
5 mars 2020
4 janv. 2016 à 12:56
4 janv. 2016 à 12:56
Eh bien étant donné que la valeur est en bdd et que j'ai un script qui tourne plusieurs fois par seconde, la valeur est forcément affiché chez tout le monde en même temps (à quelques dixièmes de secondes près)
Si j'avais fais une requête qui boucle que toute les 5 min en ajax, ou même en JS du coup, quelqu'un qui serait arrivé 3 min après l'autre aurait 3 min de décalage.
Pour que les utilisateurs aient une information tous au même moment, je ne vois pas d'autre alternative. Du coup pour ce qui est de la récupération de la valeur en instantané je n'ai pas de soucis. Le problème vient de la façon d'insérer cette fameuse valeur (qui peut varier) toute les 5 minutes
Si j'avais fais une requête qui boucle que toute les 5 min en ajax, ou même en JS du coup, quelqu'un qui serait arrivé 3 min après l'autre aurait 3 min de décalage.
Pour que les utilisateurs aient une information tous au même moment, je ne vois pas d'autre alternative. Du coup pour ce qui est de la récupération de la valeur en instantané je n'ai pas de soucis. Le problème vient de la façon d'insérer cette fameuse valeur (qui peut varier) toute les 5 minutes
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
4 janv. 2016 à 14:39
4 janv. 2016 à 14:39
Cette fameuse phrase doit être saisie par l'utilisateur ou il s'agit de phrases déjà écrites à l'avance sur laquelle l'utilisateur n'a aucune influence ?
Gutierrez345
Messages postés
3
Date d'inscription
mercredi 30 décembre 2015
Statut
Membre
Dernière intervention
6 janvier 2016
5 janv. 2016 à 13:49
5 janv. 2016 à 13:49
C'est un peu barbare mais c'est le premier truc qui me vient à l'esprit...
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
5 janv. 2016 à 13:53
5 janv. 2016 à 13:53
quoi donc ?
3 janv. 2016 à 11:25