리마인더를 포함하는 활동을 실행하면 리마인더가 Reminders 엔티티에 유지됩니다. 리마인더가 전송되는 시간은 다음과 같이 계산됩니다.
- 리마인더의 제공 기간은 초 단위로 검색됩니다. 이는 초 단위로 직접 지정하거나 워크플로우 데이터 오브젝트 속성에서 지정할 수 있습니다.
- 리마인더와 연관된 최종 기한은 초 단위로 검색됩니다. 이는 초 단위로 직접 지정하거나 워크플로우 데이터 오브젝트 속성에서 지정할 수 있습니다.
- 리마인더의 제공 기간이 양수이고 이 수가 최종 기한보다 작으면(어떤 이유로 최종 기한 날짜 시간보다 큰 시간으로 리마인더 제공을 지정할 수 없음) 리마인더 알림을 제공하는 시간이 최종 기한(리마인더 제공 기간)으로 계산됩니다. 그런 다음 초 단위의 이 기간은 날짜 시간으로 변환되고 라마인더를 작성 중인 날짜 시간에 추가됩니다. 그리고 나서 리마인더 레코드에 리마인더 알림을 보낼 날짜 시간으로 저장됩니다.
ScanTaskDeadlines 일괄처리 작업을 호출하면 최종 기한에 대해 구성된 리마인더가 처리되고 전송됩니다. 이 일괄처리 작업은 DeadlineScanner를 호출합니다. scanDeadlines() 함수는 사용자에게 알림을 보낼지 여부를 판별하는 리마인더 알림 할당 전략을 사용하여 예정된 리마인더를 스캔하고 연관된 리마인더 알림을 보냅니다. 전송된 리마인더는 다시 전송되지 않도록 Reminders 엔티티에서 제거됩니다. 활동이 완료되면 해당 활동에 대해 구성되었지만 전송되지 않은 모든 리마인더가 제거됩니다.