OVH Community, votre nouvel espace communautaire.

Mon premier serveur dédié ?


Gaston_Phone
23/08/2016, 14h33
Citation Envoyé par Nowwhat
T'as la possibilité de lancer des scripts (à partir des scripts)
Deux façon des les lancer :
Le cron de ton Mutu.
Ou le visiteur de ton site qui démarre (indirectement) un script.
Lancer des tâches en arrière plan est impossible (car ça va 'tueur' le serveur Mutu).
Voir #5.

- - - Mise à jour - - -

A placer juste après le "session_start".

cassiopee
23/08/2016, 10h38
Citation Envoyé par xophemy
@cassiopee sur un mutu OVH, je ne sais pas s'il est possible de lancer un process en tâche de fond. J'ai toujours utilisé le système classique dans lequel le client n'a sa réponse que quand le serveur a terminé son traitement. As-tu un exemple ? Merci
Oui, je faisais cette réponse plutôt dans l'optique d'un dédié ou d'un VPS.

Je n'ai jamais essayé dans le cadre d'un mutu mais il est possible que ça fonctionne quand même.

Pour l'essentiel, il s'agit d'utiliser une fonction PHP comme "shell_exec()" ou équivalent :

https://nsaunders.wordpress.com/2007...rocess-in-php/

https://florian.ec/articles/running-...cesses-in-php/

Si jamais cette fonction est interdite par OVH, alors on peut utiliser des solutions
indirectes comme celles indiquées par Nowwhat ci-dessus.

Nowwhat
23/08/2016, 09h22
Citation Envoyé par xophemy
.. je ne sais pas s'il est possible de lancer un process en tâche de fond.
T'as la possibilité de lancer des scripts (à partir des scripts)
Deux façon des les lancer :
Le cron de ton Mutu.
Ou le visiteur de ton site qui démarre (indirectement) un script.
Lancer des tâches en arrière plan est impossible (car ça va 'tueur' le serveur Mutu).

xophemy
22/08/2016, 20h42
@Gaston_Phone @Nowwhat c'est effectivement un peu tordu. Je vais essayer de faire plus pro avec un serveur dédié ;-) Mais merci

@guiguiabloc le service externe en question n'est pas une base de données. C'est une API. Avec tout ce que cela implique de transformation de données et d'authentification

@cassiopee sur un mutu OVH, je ne sais pas s'il est possible de lancer un process en tâche de fond. J'ai toujours utilisé le système classique dans lequel le client n'a sa réponse que quand le serveur a terminé son traitement. As-tu un exemple ? Merci

Nowwhat
21/08/2016, 13h05
Synchroniser des bases MySQL, dont un est une base d'un Mutu, ce n'est pas possible.

Par contre, un VPS le plus petit, un petit cron qui exécute (par exemple) un fichier php chaque 1 minutes sur ton serveur web Mutu, oui.

Je pense qu'il existe même des services sur le net qui font que ça.

L'idée de Gastonphone est la meilleur : à chaque visite de ton site, vérifier si le temps de la dernière visite ne dépasse le 60 secondes.
Si c'est le cas, spam ton tâche "cron".
Sinon, fait rien.

cassiopee
21/08/2016, 11h16
Après cela dépend de ce que xophemy entend par "service externe" :

Si c'est une base MySQL directement accessible et configurable, oui, la meilleure solution serait d'utiliser les mécanismes
de synchronisation propres aux bases de données.

Mais si c'est par exemple une API qu'il faut appeller (par exemple afin de stocker des données dans un Cloud ou autre système),
là on a besoin d'un script intermédiaire.

sich
21/08/2016, 09h21
Le plus simple étant effectivement du master / slave sur mysql....
Voir du master/master en cas d'écriture des deux côtés (avec galera).
Qui plus est (sauf si la bande passante et mauvaise) une mise à jour de la 2° bdd, même à distance est assez rapide normalement.
Et sinon au pire un cron / minute... Si c'est asynchrone on peux se permettre d'avoir 1minute de délais. Si c'est synchrone il faut de toute façon passer par de la réplique mysql plutôt que de bidouiller un script.

cassiopee
21/08/2016, 01h45
Citation Envoyé par xophemy
Ne pouvant faire la synchro lors de la mise à jour de l'enregistrement en base (pour ne pas ralentir l'expérience de l'utilisateur sur le site)
Pourquoi la synchronisation avec le service externe ralentirait l'expérience utilisateur du site ?

Tel que tu le décris, un script PHP du site web faisant la mise à jour de la base locale peut également lancer
un script de synchro qui lui peut s'exécuter en tâche de fond, donc en parallèle avec la navigation
de l'utilisateur ?

guiguiabloc
21/08/2016, 00h05
Citation Envoyé par xophemy
@guiguiabloc c'est pour synchroniser une base de données avec un service externe de manière asynchrone. Ne pouvant faire la synchro lors de la mise à jour de l'enregistrement en base (pour ne pas ralentir l'expérience de l'utilisateur sur le site) ni attendre 1h que la prochaine tâche cron s'exécute, j'ai bien l'impression que je n'ai que cette option. Sauf si tu as une autre idée.
Configurer la base externe en mode slave et utiliser le mécanisme de réplication natif du moteur de la BDD

Gaston_Phone
20/08/2016, 22h13
Une idée LOUFOQUE : utiliser comme cron, chaque affichage de page.
Il te suffit de mettre une date Heure - Minute - Seconde dans un fichier TEXTE et de contrôler le changement de minute.

Je l'ai testé, il y a quelque années, avec un contrôle d'heure sur un hébergement mutualisé OVH.

xophemy
20/08/2016, 22h07
@fritz2cat merci beaucoup, c'est noté.

@guiguiabloc c'est pour synchroniser une base de données avec un service externe de manière asynchrone. Ne pouvant faire la synchro lors de la mise à jour de l'enregistrement en base (pour ne pas ralentir l'expérience de l'utilisateur sur le site) ni attendre 1h que la prochaine tâche cron s'exécute, j'ai bien l'impression que je n'ai que cette option. Sauf si tu as une autre idée.

guiguiabloc
20/08/2016, 21h22
Citation Envoyé par xophemy
Bonjour,

Je suis un habitué de la programmation web et des hébergements mutualisés OVH.

Toutefois, je rencontre une problématique qui me semble nécessiter cette fois un serveur dédié.

Concrètement, j'ai besoin d'exécuter des scripts toutes les minutes (ou toutes les secondes dans certaines situations).
Compte tenu de la fréquence, des tâches crons ne sont pas envisageables.

J'ai besoin d'un script qui tourne en permanence (daemon). J'ai justement récupéré un script python pour faire exactement cela.
http://web.archive.org/web/201310171...mon_in_python/

Toutefois, et corrigez moi si je me trompe, je ne pense pas qu'il soit possible de le faire tourner sur un hébergement mutualisé. OVH impose un timeout à tous les scripts non ?

Si ce n'est pas faisable sur un hébergement mutualisé, ce sera sûrement possible sur un serveur dédié.

Je suis par contre perdu entre toutes les offres. Je cherche le serveur le plus petit (et le moins cher possible), Linux, pour faire tourner mon petit script. Je n'ai besoin de rien d'autre.

J'ai jeté un coup d'oeil du côté de Kimsufi, mais il y a déjà plein d'options.

Pouvez-vous me donner un coup de main svp ?

Merci beaucoup
^^ je ne vois pas ce que veux faire en faisant tourner un "script" toutes les secondes ou minutes... On ne fait plus ce genre de "bidouilles" depuis des années.
Tes traitements sont ou synchrones ou asynchrones, en tout état de cause, ils ne s’exécutent que sur changement d'état (changement sur l'inode, changement de statut etc..)
tu veux faire quoi en fait parce que ce type de comportement en développement est une hérésie.

fritz2cat
20/08/2016, 20h51
Un VPS premier prix fera l'affaire. L'avantage du VPS est que tu ne dois pas te soucier des pannes de matériel et en particulier le crash disque.
Par contre tu as toujours la possibilité de détruire ton système en faisant un rm -rf /home /bin

xophemy
20/08/2016, 19h36
Bonjour,

Je suis un habitué de la programmation web et des hébergements mutualisés OVH.

Toutefois, je rencontre une problématique qui me semble nécessiter cette fois un serveur dédié.

Concrètement, j'ai besoin d'exécuter des scripts toutes les minutes (ou toutes les secondes dans certaines situations).
Compte tenu de la fréquence, des tâches crons ne sont pas envisageables.

J'ai besoin d'un script qui tourne en permanence (daemon). J'ai justement récupéré un script python pour faire exactement cela.
http://web.archive.org/web/201310171...mon_in_python/

Toutefois, et corrigez moi si je me trompe, je ne pense pas qu'il soit possible de le faire tourner sur un hébergement mutualisé. OVH impose un timeout à tous les scripts non ?

Si ce n'est pas faisable sur un hébergement mutualisé, ce sera sûrement possible sur un serveur dédié.

Je suis par contre perdu entre toutes les offres. Je cherche le serveur le plus petit (et le moins cher possible), Linux, pour faire tourner mon petit script. Je n'ai besoin de rien d'autre.

J'ai jeté un coup d'oeil du côté de Kimsufi, mais il y a déjà plein d'options.

Pouvez-vous me donner un coup de main svp ?

Merci beaucoup