Lorsqu'une activité contenant des rappels a été exécutée, les rappels sont conservés sur l'entité Reminders. L'heure à laquelle un rappel doit être envoyé est calculée comme suit :
- La durée de distribution du rappel est extraite en secondes. Cela peut être spécifié directement en secondes ou dans un attribut d'objet de données de flux de travaux.
- La durée de l'échéance associée au rappel est extraite en secondes. Cela peut être spécifié directement en secondes ou dans un attribut d'objet de données de flux de travaux.
- Si la durée de distribution du rappel est un nombre positif et que ce nombre est inférieur à la durée d'échéance (les distributions de rappel ne peuvent être spécifiées pour les heures qui sont supérieures à la date et à l'heure d'échéance pour des raisons évidentes), l'heure de distribution de la notification de rappel est calculée comme suit : durée d'échéance - durée de distribution du rappel. Cette durée en secondes est ensuite convertie en date et en heure et est ajoutée à la date et à l'heure auxquelles le rappel est créé. Elle sera ensuite stockée dans l'enregistrement de rappel, comme la date et l'heure de la notification de rappel doivent être envoyées.
Les rappels configurés pour les échéances sont traités et envoyés en appelant le travail par lots ScanTaskDeadlines . Ce travail par lots appelle la fonction DeadlineScanner scanDeadlines() qui analyse des rappels qui arrivent à échéance et envoie les notifications de rappel associées (à l'aide de la stratégie d'allocation de notification de rappel pour déterminer les utilisateurs à qui les notifications doivent être envoyées). Les rappels envoyés sont supprimés de l'entité Reminders afin de s'assurer qu'ils ne sont pas envoyés une nouvelle fois. Lorsque l'activité se termine, tous les rappels configurés non envoyés de cette activité sont supprimés.