mirror of
https://github.com/moodle/moodle.git
synced 2025-04-24 18:04:43 +02:00
MDL-65050 core: move function code to question_preview_cleanup_task
This commit also deletes the legacy question_preview_cron() function.
This commit is contained in:
parent
5a01c2409a
commit
10810f421b
@ -45,12 +45,29 @@ class question_preview_cleanup_task extends scheduled_task {
|
||||
* Throw exceptions on errors (the job will be retried).
|
||||
*/
|
||||
public function execute() {
|
||||
global $CFG;
|
||||
|
||||
// Run question bank clean-up.
|
||||
require_once($CFG->libdir . '/questionlib.php');
|
||||
\question_bank::cron();
|
||||
// We delete previews that have not been touched for 24 hours.
|
||||
$lastmodifiedcutoff = time() - DAYSECS;
|
||||
|
||||
mtrace("\n Cleaning up old question previews...", '');
|
||||
$oldpreviews = new \qubaid_join('{question_usages} quba', 'quba.id',
|
||||
'quba.component = :qubacomponent
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM {question_attempts} subq_qa
|
||||
JOIN {question_attempt_steps} subq_qas ON subq_qas.questionattemptid = subq_qa.id
|
||||
JOIN {question_usages} subq_qu ON subq_qu.id = subq_qa.questionusageid
|
||||
WHERE subq_qa.questionusageid = quba.id
|
||||
AND subq_qu.component = :qubacomponent2
|
||||
AND (subq_qa.timemodified > :qamodifiedcutoff
|
||||
OR subq_qas.timecreated > :stepcreatedcutoff)
|
||||
)
|
||||
',
|
||||
['qubacomponent' => 'core_question_preview', 'qubacomponent2' => 'core_question_preview',
|
||||
'qamodifiedcutoff' => $lastmodifiedcutoff, 'stepcreatedcutoff' => $lastmodifiedcutoff]);
|
||||
|
||||
\question_engine::delete_questions_usage_by_activities($oldpreviews);
|
||||
mtrace('done.');
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -327,32 +327,3 @@ function restart_preview($previewid, $questionid, $displayoptions, $context) {
|
||||
redirect(question_preview_url($questionid, $displayoptions->behaviour,
|
||||
$displayoptions->maxmark, $displayoptions, $displayoptions->variant, $context));
|
||||
}
|
||||
|
||||
/**
|
||||
* Scheduled tasks relating to question preview. Specifically, delete any old
|
||||
* previews that are left over in the database.
|
||||
*/
|
||||
function question_preview_cron() {
|
||||
$maxage = 24*60*60; // We delete previews that have not been touched for 24 hours.
|
||||
$lastmodifiedcutoff = time() - $maxage;
|
||||
|
||||
mtrace("\n Cleaning up old question previews...", '');
|
||||
$oldpreviews = new qubaid_join('{question_usages} quba', 'quba.id',
|
||||
'quba.component = :qubacomponent
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM {question_attempts} subq_qa
|
||||
JOIN {question_attempt_steps} subq_qas ON subq_qas.questionattemptid = subq_qa.id
|
||||
JOIN {question_usages} subq_qu ON subq_qu.id = subq_qa.questionusageid
|
||||
WHERE subq_qa.questionusageid = quba.id
|
||||
AND subq_qu.component = :qubacomponent2
|
||||
AND (subq_qa.timemodified > :qamodifiedcutoff
|
||||
OR subq_qas.timecreated > :stepcreatedcutoff)
|
||||
)
|
||||
',
|
||||
array('qubacomponent' => 'core_question_preview', 'qubacomponent2' => 'core_question_preview',
|
||||
'qamodifiedcutoff' => $lastmodifiedcutoff, 'stepcreatedcutoff' => $lastmodifiedcutoff));
|
||||
|
||||
question_engine::delete_questions_usage_by_activities($oldpreviews);
|
||||
mtrace('done.');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user