mirror of
https://github.com/moodle/moodle.git
synced 2025-01-17 21:49:15 +01:00
e5a7a18ae2
Previously, quiz statistics processing happened on a scheduled task. This task looked for all quizzes with completed attempts, then determined if those quizzes had a statistics calculation that's newer than the most recent attempt, then ran the statistics calculation if needed. It was hard coded to stop processing after 1 hour. The queries involved in determining which quizzes needed processing weren't terribly efficient, and combined with the 1 hour limit this made the statistics unusable on large sites, where they are the most useful. This converts the scheduled task to an ad-hoc task, and uses an event observer for mod_quiz\event\attempt_submitted to queue a task when it is needed. This removes the need for a query to work out what needs processing, and allows the task processing to be scaled up as needed.