Upload
normandie-web-xperts
View
141
Download
2
Embed Size (px)
Citation preview
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
Performance WEB
DAEMONSen PHP
Olivier MartineauSpreadButton
QU’EST-CE ? Le diable ?
Un programme En arrière plan
Qui effectue différentes tâches
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
POURQUOI ? Mais oui, pourquoi ?
- tâches trop longues- exports/imports de fichiers- calcul de statistiques- envoi d’emailing
- tâches pas utiles immédiatement- log / trace- API
- tâches non interactives- activation / désactivation horaire
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
(mauvaises) ALTERNATIVES
- CRON- Ajax
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
COMMENT ? Grand principe
#!/usr/bin/env php<?php
# uniquement en mode ligne de commandeif( !defined('STDIN') ) { die ("Only from command line, note web");}
ini_set ('max_execution_time', 0); // Temps maximum d'exécution illimité
while (true) { # au boulot, sans d’arrêter
}
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
COMMENT ? En détail
$start_time = time(); while (true) {
// indentifiant d'activité $faitquelquechose = false;
$return = $ma_fonction_daemon(); if ($return) { $faitquelquechose = true; } if ((time() - $start_time) > 60*30) { // On tue le daemon toutes les 30 minutes exit(0); // a la fin du temps on le ferme } if (!$faitquelquechose) { // repos du démon sleep(10); // On n'a rien fait, probablement il n'y aura rien d'autre à faire prochainement : on économise le serveur }}
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
LANCEMENT
A la main, le ligne de commande :# /usr/bin/php daemon.php
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
LANCEMENT
En automatique, avec UPSTART :# vi /etc/init/phpdaemon.phpstart on (net-device-up and local-filesystems and runlevel [2345])stop on runlevel [016]respawn # redémarrage automatiqueenv HOME=/var/www/daemonhomeumask 007kill timeout 300pre-start scriptend scriptexec nice -n 10 su www-data -c '/usr/bin/php /var/www/daemonhome/daemon.php'post-start script exit 1end script
# service start phpdaemon
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
CHEZ NOUS ?
21 tâches :- créations des abonnements / facturations / paiement- gestion des emailings- gestion des activations / désactivations des campagnes- aspirations des profils Facebook- statistiques- segmentations- création d’un cache- imports
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
EVOLUTION TECHNO
File d’attente :Avant : chaque tâche teste à chaque fois s’il y a du boulot
Après : mise en file d’attente et traitée au fur et à mesure
Bénéfices : de requêtes SQL, meilleure gestion des priorités
Parallélisation :Répartition des tâches, sur plusieurs daemons, sur plusieurs
serveurs. Lancement dynamique en fonction du besoin.
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts
Go
Les daemons, c’est bien,
manger en !
#NXWTECH6 - 15 mai 2013 - Normandie Web Xperts