|
|
|
|
|
- Conseils d'utilisation
- Mode d'utilisation
ServiceTemporise (Fonction) En anglais : ServiceWait Temporise le service en cours pour la durée indiquée. Remarque : Cette fonction est ignorée si elle n'est pas appelée dans une application de type Service. // -- Exécution du service (appelé en boucle) --  // Boucle principale du service // Vérification de la présence de fichiers dans le répertoire sListeFichier est une chaîne sListeFichier = fListeFichier("c:\temp\entrée\*.*", frNonRécursif)  // Si des fichiers ont été déposés dans le répertoire, ils sont traités par le service SI sListeFichier <> "" ALORS TraiteListeFichier(sListeFichier) FIN  // Temporisation de 10 secondes entre deux boucles ServiceTemporise(10*100)
Syntaxe
ServiceTemporise(<Temporisation>)
<Temporisation> : Entier ou Durée Temporisation du thread en cours du service (en centièmes de seconde). Ce paramètre peut correspondre à : - un entier correspondant au nombre de centièmes de seconde,
- une variable de type Durée,
- l'indication directe de la durée (par exemple 1 s ou 10 ms).
Remarques Conseils d'utilisation - Une application de type Service exécute en boucle l'événement "Exécution du service". Pour éviter de consommer toutes les ressources processeur de la machine, il est nécessaire d'utiliser la fonction ServiceTemporise à la fin de cet événement.
- Dans une application de type Service, il ne faut pas utiliser les fonctions Multitâche, Temporisation ou ThreadPause.
Mode d'utilisation La fonction ServiceTemporise est nécessaire si le code du service ne fait pas lui-même une temporisation ou une attente. L'exécution de la fonction ServiceTemporise se termine automatiquement si une demande d'arrêt de service arrive. Voici une classification des types de services et les cas d'utilisation de la fonction ServiceTemporise. - Catégorie 1
Cas où la fonction ServiceTemporise est inutile : lorsque le service attend une sollicitation externe. Par exemple : - un serveur de communication par sockets qui attend une demande de connexion (fonction SocketAttendConnexion)
- un service qui attend un signal externe (fonction SignalAttend)
- un service en attente de synchronisation interne de threads.
Dans ces cas, la fonction ServiceTemporise est inutile. Par contre, il est nécessaire d'utiliser un code spécifique d'arrêt pour interrompre l'attente. Remarque : Un service classique, comme son nom l'indique, propose des services aux autres processus : il est donc en attente de "commandes" externes et se trouve dans la catégorie 1 pour laquelle la fonction ServiceTemporise est inutile. - Catégorie 2
Cas où la fonction ServiceTemporise est peu utile : vérifications en boucles rapides (de l'ordre de la seconde). Par exemple, vérification très régulière d'un état d'un fichier de base de données. Le service ne passant pas plus d'une seconde dans l'attente, la fonction ThreadPause suffit largement. En cas de demande d'arrêt, cet arrêt se fera à la fin de la boucle, donc après une attente de quelques secondes seulement. - Catégorie 3
Cas où la fonction ServiceTemporise est très utile : vérifications espacées dans le temps. Par exemple, traitement d'un spool de fichiers dans un répertoire avec vérifications du répertoire toutes les 5 minutes. Remarque : Dans ce cas de figure, une tâche planifiée est souvent plus adaptée.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|