PC SOFT

ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Home | Sign in | English EN
  • Managing a service
ServiceInstall (Example)
Managing a 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
Minimum version required
  • Version 16
This page is also available for…
Comments
Click [Add] to post a comment