Aller au contenu principal

Nouveautés de Win32Service 0.4

Par @jbnahan69
Logo Win32Service
Logo Win32Service

Cette version apporte quelques nouveautés. La plus importante me semble être la gestion des défaillances du service.

Votre service fonctionne normalement et une erreur viens perturber son fonctionnement. PHP sort avec une erreur, mais vous devez relancer le service à la main.

Avec la version 0.4 de l'extension, il est possible de prédéfinir le type de sortie avec un code. Le mode de sortie par défaut est un mode gracieux qui informe juste le gestionnaire de service de l'arrêt de votre service quelques soit la cause réelle du service.

Avec ces nouvelles fonctions (win32_set_exit_mode, win32_set_exit_code), vous pouvez personnaliser le mode de sortie et le code de sortie. Ainsi si votre code lève une exception ou une erreur PHP, il est possible de la récupérer, de l'enregistrer dans un journal d’événement puis de réaliser une sortie en erreur du service. Ainsi, le gestionnaire des services peut être configuré pour réaliser des actions lié aux défaillances.

Lors de l'arrêt du service, le gestionnaire déclenchera donc l'une des actions possibles selon le nombre de défaillances du service. Relancer le service sera surement votre premier choix. Ainsi à l'issue d'un délai d'attente, le service sera relancera correctement. Il pourra reprendre son travail sans votre intervention.

Dans cette version, quelques paramètres de configuration ont été ajoutés pour configurer le service lors de l'enregistrement auprès du gestionnaire de service.

Premier élément de configuration concerné justement la stratégie de gestion des défaillances. Quelles sont les actions à réaliser lors de la première défaillance, la seconde, les suivantes...

Ainsi, il vous est possible de définir le comportement du service lors de son enregistrement, mais également de déclarer la défaillance du service lors d'une sortie brutale pendant son exécution.

Un dernier élément de configuration apporté par cette version est la gestion des dépendances. Votre service dépend surement d'un autre service (par exemple le service de gestion du réseau). Vous pouvez maintenant déclarer ces dépendances lors de l'enregistrement du service pour que votre service soit démarré après toutes ses dépendances.

Comme à mon accoutumé, la documentation de l'extension a été mise à jour sur le site officiel de PHP tant en anglais qu'en français.

A vous de jouer avec cette nouvelle version. Je suis toujours ouvert à vos retours d'expérience, mais également a vos suggestions d'améliorations.

Lire également:

Author avatar
Jean-Baptiste Nahan

Consultant Expert Web, j'aide les entreprises ayant des difficultés avec leur projet Web (PHP, Symfony, Sylius).

@jbnahan69 | Macintoshplus | Linkedin | JB Dev Labs