DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions Service
  • Gestion d'un service
ServiceInstalle (Exemple)
Gestion d'un service
// Lancement hors service ?
SI EnModeService() = Faux _ET_ EnModeTest() = Faux ALORS
// Lancement hors service :
// ce projet étant prévu pour être un service,
// on va proposer l'installation du service
// Service installé ?
SI ServiceExiste(gsNomService) = Faux ALORS
// Non
SI OuiNon("Le service n'est actuellement pas installé" + RC + ...
"Désirez-vous l'installer maintenant ?") = Vrai ALORS
// Paramètres du service
// Démarrage
Service.Démarrage = serviceDémarrageManuel
Service.DémarrageRetardé = Faux
// Service "normal"
Service.Type = serviceTypeSimple
// Description
Service.Description = "WDService WINDEV"
Service.DescriptionLongue = "Service WINDEV avec redémarrage en cas de défaillance"
// En cas d'erreur au démarrage,
// info dans le journal des événements
Service.ErreurDémarrage = serviceErreurLog
// C'est l'exécutable en cours
Service.LigneCommande = ExeInfo(exeNom)
// Droits
Service.Utilisateur = CompteSystèmeLocal
 
 
// En cas de défaillance...
// Attente de 3 secondes pour laisser le temps
// aux différentes ressources du service d'être libérées
Service.DélaiAvantActionSurDéfaillance = (3*1000)
// Le nombre de défaillances est réinitialisé
// au bout de 30 secondes sans défaillance
Service.ReinitCompteurDéfaillance = 30
// Nombre de défaillances autorisées : 3
Service.NbActionSurDéfaillance = 3
 
// Première défaillance : Le service redémarre
Service.ActionSurDéfaillance[1] = serviceEchecRedémarreService
// et pour les défaillance suivantes (ici les 4 suivantes)
// on fait pareil
POUR nNumDefaillance = 2 _À_ 3
Service.ActionSurDéfaillance[nNumDefaillance] = ...
serviceEchecRedémarreService
FIN
// Installe le service
SI ServiceInstalle(gsNomService) = Faux ALORS
Erreur("Impossible d'installer le service : '" + ErreurInfo())
SINON
// Démarre le service
SI ServiceDémarre(gsNomService) = Vrai ALORS
Info("Le service a été installé et démarré")
SINON
Erreur("Le service a été installé mais il n'a pas pu démarrer", ...
ErreurInfo())
FIN
FIN
FIN
SINON
// Oui
// Etat du service
nEtatService est un entier = ServiceEtat(gsNomService)
SELON nEtatService
CAS -1 // Erreur
Erreur("Impossible de récupérer l'état du service : ", ErreurInfo())
 
CAS serviceEtatArrêté // Service arrêté on le relance
//1 : Le démarrer
//2 : Le désinstaller
//3 : Ne rien faire
SELON Dialogue("Le service est actuellement arrêter. Que désirez-vous faire ?")
// Le démarrer
CAS 1
// Démarre le service
SI ServiceDémarre(gsNomService) = Vrai ALORS
Info("Le service a été installé et démarré")
SINON
Erreur("Le service a été installé " + ...
"mais il n'a pas pu démarrer", ...
ErreurInfo())
FIN
 
// Le désinstaller
CAS 2
SI ServiceDésinstalle(gsNomService) = Vrai ALORS
Info("Le service a été désinstallé")
SINON
Erreur("Le service n'a pas pu être désinstallé",...
ErreurInfo())
FIN
// Ne rien faire
CAS 3
 
FIN
CAS serviceEtatDémarré // Service déjà démarré on l'indique
SI OuiNon("Le service est actuellement déjà démarré" + ...
"Désirez-vous l'arrêter ?") ALORS
SI ServiceArrête(gsNomService) = Vrai ALORS
Info("Le service a bien été arrêté")
SINON
Erreur("Le service n'a pas pu être arrêté", ErreurInfo())
FIN
FIN
 
AUTRE CAS // Autre état (attente de lancement, attente d'arrêt...)
SELON nEtatService
CAS serviceEtatAttenteArrêt
Info("Le service est en cours d'arrêt " + ...
"(il a reçu une commande d'arrêt " + ...
"mais il n'est pas encore arrêté)")
CAS serviceEtatAttenteDémarrage
Info("Le service est en cours de démarrage " + ...
"(il a reçu une commande de démarrage " + ...
"mais il n'est pas encore démarré)")
CAS serviceEtatAttentePause
Info("Le service est en cours de mise en pause " + ...
"(il a reçu une commande de pause " + ...
"mais il n'est pas encore en pause)")
CAS serviceEtatAttenteRelancement
Info("Le service est en cours de relancement " + ...
"(il a reçu une commande de relancement" + ...
"mais il n'est pas encore relancé)")
CAS serviceEtatEnPause
SI OuiNon("Le service est actuellement en pause, " + ...
"Voulez-vous le ré-activer ?") ALORS
SI PAS ServiceRelance(gsNomService) ALORS
Erreur("Le service est en pause" + ...
"il n'a pas été possible de le relancer : ", ...
ErreurInfo())
SINON
Info("Le service a bien été ré-activé")
FIN
FIN
AUTRE CAS
Erreur("Le service est dans un état inattendu : " + ...
nEtatService)
FIN
FIN
FIN
FinProgramme()
FIN
Version minimum requise
  • Version 16
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale