As a Wikisource user, I want the team to investigate a queue-running system, so it can be determined if a) such a system would improve reliability to a meaningful degree, and b) if the work would be manageable and within scope for the team.
Background: We should investigate adding a queue-running system, similar to what we built for #eventmetrics, for WSExport. This would mean that users would submit a request for an ebook, it'd be added to the queue, and they'd get a status page indicating the progress. The queue would first generate the epub, which would then be available for download, and then it'd generate the derivative forms (PDF etc.) and make those available when done. This would help with errors such as T250614. This system would also effectively give us a cache (e.g. if two people request the same ebook, only one queue process would need to run). Task for that: T222936.
Acceptance Criteria:
- Investigate the primary work that would need to be done in order to implement a queue-running system, similar to what we built for #eventmetrics, for WSExport.
- Investigate the main challenges, risks, and possible dependencies associated with implementing such a system
- Provide a general estimate/idea, if possible, of the potential impact it may have on ebook export reliability.
- In other words, do we have a strong hunch that this could, indeed, improve reliability (and in a considerable way)? Why or why not?
- Provide a general estimation/rough sense of the level of difficulty of effort required in doing such work
NOTES:
- We will also want to see how often many people are downloading at once (i.e., how often there are issues that implementing a job queue could address). This could be data we work with Jennifer to get, potentially.
- We will investigate UX questions related to informing users of the status of a potential download status (i.e., if it is almost done downloading, if there are errors and they should try again, etc) in a separate investigation. Refer to T256707 parent task to see relevant design & UX for the ebook export process.