...
Institutions need to be able to schedule both the age to lost and aged to lost billing processes to be run during quieter periods for their libraries e.g. when the libraries are closed. This is to ensure these processes do not interfere with day to day processes by shifting the load on the system to a quieter part of the day.
Previous Decisions
- This aspect was excluded from the initial aged to lost work
- It was decided that FOLIO would not have general job scheduling capability, preferring that each module will provide this capability separately
- A periodic invocation mechanism was implemented in Okapi which allows a task to be executed each time a period has elapsed
...
Open Questions
- What are the needed scheduling options , can e.g. daily, weekly, specific days of the week?
- Can a process be executed on more than one schedule?
- It has been suggested that this need is also relevant for other background processes. What are those other processes What should happen if one of the processes fails?
- What are other background processes that need a similar capability (some are listed below)?
Possibly Related Areas
- Sending of scheduled patron notices also needs scheduling at a specific time
- Bursar exporting of fees / fines
- Data Export (as it also defines the idea of a job)
- Data Import (as it also defines the idea of a job)
...
- Schedules would be set up in an API provided by the scheduling module
- Permissions would need to be granted to a user either assigned or created for the processes
- Choice of module instance would likely be made by Okapi (assuming scheduler modules uses HTTP via Okapi to start processes)
- Concurrent execution would be managed by scheduler module
- Accuracy of when the process executes is dependent upon approach taken in scheduling module
- Storage for schedule and execution management could be internal to scheduling module or a separate storage module
Variations
- Extend the scheduling capabilities of Okapi beyond the current
_timer
interface - Use Kafka instead of HTTP to manage process execution
...
- Schedules would be set up in the external tool (and cannot be configured from within FOLIO)
- Permissions would need to be granted to a user either assigned or created for the processes
- Choice of module instance would likely be made by Okapi (assuming scheduler modules uses HTTP via Okapi to start processes)
- Module instances would need to coordinate to avoid concurrent execution of the process
- Accuracy of when the process executes is dependent upon the external tool
- Could be left entirely up to the hosting provider or FOLIO may want to set expectations (e.g. like the use of AWS or min.io for file storage)
Related Information
- Design document for aged to lost processes
- JIRA issue for this design document
- JIRA issue where scheduling was first mentioned