Spool Cleaning
Spool cleaning ensures that print jobs meeting certain conditions are removed periodically from spoolers to prevent accumulation of undesired data.
Process description
YSoft SafeQ Spooler Controller based on a CRON rule defined in YSoft SafeQ Management Service starts the spool cleaning. During the spool cleaning it determines which jobs are viable for deletion and sends delete request to YSoft SafeQ Job Services for these jobs.
These deletion requests are cached in YSoft SafeQ Job Service's distributed layer.
YSoft SafeQ Spooler periodically sends a status report to YSoft SafeQ Job Service with a list of jobs it currently has on disk. YSoft SafeQ Job Service compares the job list with the cache of delete requests and sends command to spooler to delete jobs that should be removed. While doing so YSoft SafeQ Job Service updates the entries in cache with a TTL (time to live) after which the cached request will be deleted.
Spooler
Configuration options
Group | Key | Type | Default value | Description |
StatusReportingOptions | ReportingInterval | TimeSpan | 3 hours | Defines how often the YSoft SafeQ Spooler will report its status to the server. |
MaxJitter | TimeSpan | 15 minutes | Maximum random jitter added to reporting interval. This jitter also represents time, when the first report will be sent. |
Job Service
Configuration options
Group | Key | Type | Default value | Description |
YmqProxyOptions | DeleteJobCandidateExpirationTime | TimeSpan | 7 days | Time a job delete request is kept in distributed layer before being deleted. |
Limitations
It is possible in an edge case scenario that a job will not be deleted from spooler.
YSoft SafeQ Spooler sends status to YSoft SafeQ Job Service
YSoft SafeQ Job Service tries to send command to YSoft SafeQ Spooler to delete jobs and marks jobs with TTL of DeleteJobCandidateExpirationTime
YSoft SafeQ Spooler disconnects and does not receive the delete command
YSoft SafeQ Spooler doesn't connect within the DeleteJobCandidateExpirationTime interval
YSoft SafeQ Spooler connects after the cached delete request expired and is deleted