Class ilCronFinishUnfinishedTestPasses.
More...
|
| | getId () |
| |
| | getTitle () |
| |
| | getDescription () |
| |
| | getDefaultScheduleType () |
| |
| | getDefaultScheduleValue () |
| |
| | hasAutoActivation () |
| |
| | hasFlexibleSchedule () |
| |
| | hasCustomSettings () |
| |
| | run () |
| |
| | setDateTimeProvider (?Closure $date_time_provider) |
| |
| | isDue (?DateTimeImmutable $last_run, ?CronJobScheduleType $schedule_type, ?int $schedule_value, bool $is_manually_executed=false) |
| |
| | getScheduleType () |
| | Get current schedule type (if flexible) More...
|
| |
| | getScheduleValue () |
| | Get current schedule value (if flexible) More...
|
| |
| | setSchedule (?CronJobScheduleType $a_type, ?int $a_value) |
| | Update current schedule (if flexible) More...
|
| |
| | getAllScheduleTypes () |
| | Get all available schedule types. More...
|
| |
| | getScheduleTypesWithValues () |
| |
| | getValidScheduleTypes () |
| | Returns a collection of all valid schedule types for a specific job. More...
|
| |
| | isManuallyExecutable () |
| |
| | hasCustomSettings () |
| |
| | addCustomSettingsToForm (ilPropertyFormGUI $a_form) |
| |
| | saveCustomSettings (ilPropertyFormGUI $a_form) |
| |
| | addToExternalSettingsForm (int $a_form_id, array &$a_fields, bool $a_is_active) |
| |
| | activationWasToggled (ilDBInterface $db, ilSetting $setting, bool $a_currently_active) |
| | Important: This method is (also) called from the setup process, where the constructor of an ilCronJob ist NOT executed. More...
|
| |
| | getId () |
| |
| | getTitle () |
| |
| | getDescription () |
| |
| | hasAutoActivation () |
| | Is to be activated on "installation", does only work for ILIAS core cron jobs. More...
|
| |
| | hasFlexibleSchedule () |
| |
| | getDefaultScheduleType () |
| |
| | getDefaultScheduleValue () |
| |
| | run () |
| |
◆ finishPassForUser()
| ilCronFinishUnfinishedTestPasses::finishPassForUser |
( |
|
$active_id, |
|
|
|
$obj_id |
|
) |
| |
|
protected |
Definition at line 250 of file class.ilCronFinishUnfinishedTestPasses.php.
References ilObject\_exists(), ILIAS\Repository\logger(), and ILIAS\Repository\user().
Referenced by finishPassOnEndingTime(), and finishPassOnProcessingTime().
252 $processLocker = $this->processLockerFactory->withContextId((
int) $active_id)->getLocker();
255 $test_session->loadFromDb($active_id);
260 $test->updateTestPassResults(
262 $test_session->getPass(),
270 $this->test_pass_result_repository
271 ))->performFinishTasks($processLocker, StatusOfAttempt::FINISHED_BY_CRONJOB);
272 $this->
logger->info(
'Test session with active id (' . $active_id .
') and obj_id (' . $obj_id .
') is now finished.');
274 $this->
logger->info(
'Test object with id (' . $obj_id .
') does not exist.');
Class ilTestPassFinishTasks.
static _exists(int $id, bool $reference=false, ?string $type=null)
checks if an object exists in object_data
◆ finishPassOnEndingTime()
| ilCronFinishUnfinishedTestPasses::finishPassOnEndingTime |
( |
int |
$test_id, |
|
|
int |
$active_id |
|
) |
| |
|
private |
Definition at line 191 of file class.ilCronFinishUnfinishedTestPasses.php.
References finishPassForUser(), and ILIAS\Repository\logger().
Referenced by processPasses().
194 if ($this->test_ending_times[$test_id][
'ending_time_enabled'] !== 1) {
195 $this->
logger->info(
'Test (' . $test_id .
') has no ending time.');
199 $this->
logger->info(
'Test (' . $test_id .
') has ending time (' 200 . $this->test_ending_times[$test_id][
'ending_time'] .
')');
201 $ending_time = $this->test_ending_times[$test_id][
'ending_time'];
202 if ($ending_time >=
$now) {
203 $this->
logger->info(
'Test (' . $test_id .
') ending time (' 204 . $this->test_ending_times[$test_id][
'ending_time']
205 .
') > now (' .
$now .
') is not reached.');
209 $this->
finishPassForUser($active_id, $this->test_ending_times[$test_id][
'obj_fi']);
finishPassForUser($active_id, $obj_id)
◆ finishPassOnProcessingTime()
| ilCronFinishUnfinishedTestPasses::finishPassOnProcessingTime |
( |
int |
$test_id, |
|
|
int |
$usr_id, |
|
|
int |
$active_id |
|
) |
| |
|
private |
Definition at line 213 of file class.ilCronFinishUnfinishedTestPasses.php.
References ilObject\_exists(), finishPassForUser(), and ILIAS\Repository\logger().
Referenced by processPasses().
218 if ($this->test_ending_times[$test_id][
'enable_processing_time'] !== 1) {
219 $this->
logger->info(
'Test (' . $test_id .
') has no processing time.');
223 $this->
logger->info(
'Test (' . $test_id .
') has processing time (' . $this->test_ending_times[$test_id][
'processing_time'] .
')');
224 $obj_id = $this->test_ending_times[$test_id][
'obj_fi'];
227 $this->
logger->info(
'Test object with id (' . $obj_id .
') does not exist.');
231 $test_obj =
new ilObjTest($obj_id,
false);
232 $startingTime = $test_obj->getStartingTimeOfUser($active_id);
233 $max_processing_time = $test_obj->isMaxProcessingTimeReached($startingTime, $active_id);
234 if (!$max_processing_time) {
235 $this->
logger->info(
'Max Processing time not reached for user id (' 236 . $usr_id .
') in test with active id (' 237 . $active_id .
'). Starting time: ' . $startingTime
238 .
' Processing time: ' . $test_obj->getProcessingTime() .
' / ' 239 . $test_obj->getProcessingTimeInSeconds() .
's');
243 $this->
logger->info(
'Max Processing time reached for user id (' 244 . $usr_id .
') so test with active id (' 245 . $active_id .
') will be finished.');
246 $this->
finishPassForUser($active_id, $this->test_ending_times[$test_id][
'obj_fi']);
static _exists(int $id, bool $reference=false, ?string $type=null)
checks if an object exists in object_data
finishPassForUser($active_id, $obj_id)
◆ gatherUsersWithUnfinishedPasses()
| ilCronFinishUnfinishedTestPasses::gatherUsersWithUnfinishedPasses |
( |
| ) |
|
|
protected |
Definition at line 132 of file class.ilCronFinishUnfinishedTestPasses.php.
Referenced by run().
135 SELECT tst_active.active_id, 137 tst_active.user_fi usr_id, 138 tst_active.test_fi test_fi, 142 tst_active.submitted test_finished, 143 usr_data.matriculation, 145 tst_active.lastindex, 146 tst_active.last_started_pass last_started 149 ON tst_active.user_fi = usr_data.usr_id 150 WHERE IFNULL(tst_active.last_finished_pass, -1) <> tst_active.last_started_pass 152 $result = $this->db->query($query);
153 while ($row = $this->db->fetchAssoc($result)) {
154 $this->unfinished_passes[] = $row;
155 $this->test_ids[] = $row[
'test_fi'];
◆ getDefaultScheduleType()
| ilCronFinishUnfinishedTestPasses::getDefaultScheduleType |
( |
| ) |
|
Definition at line 85 of file class.ilCronFinishUnfinishedTestPasses.php.
87 return CronJobScheduleType::SCHEDULE_TYPE_DAILY;
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
◆ getDefaultScheduleValue()
| ilCronFinishUnfinishedTestPasses::getDefaultScheduleValue |
( |
| ) |
|
◆ getDescription()
| ilCronFinishUnfinishedTestPasses::getDescription |
( |
| ) |
|
◆ getId()
| ilCronFinishUnfinishedTestPasses::getId |
( |
| ) |
|
◆ getTestsFinishAndProcessingTime()
| ilCronFinishUnfinishedTestPasses::getTestsFinishAndProcessingTime |
( |
| ) |
|
|
protected |
Definition at line 159 of file class.ilCronFinishUnfinishedTestPasses.php.
References ILIAS\Repository\logger().
Referenced by run().
161 $query =
'SELECT test_id, obj_fi, ending_time, ending_time_enabled, processing_time, enable_processing_time FROM tst_tests WHERE ' .
162 $this->db->in(
'test_id', $this->test_ids,
false,
'integer');
163 $result = $this->db->query($query);
164 while ($row = $this->db->fetchAssoc($result)) {
165 $this->test_ending_times[$row[
'test_id']] = $row;
167 $this->
logger->info(
'Gathered data for ' . count($this->test_ids) .
' test id(s) => (' . implode(
',', $this->test_ids) .
')');
◆ getTitle()
| ilCronFinishUnfinishedTestPasses::getTitle |
( |
| ) |
|
◆ hasAutoActivation()
| ilCronFinishUnfinishedTestPasses::hasAutoActivation |
( |
| ) |
|
◆ hasCustomSettings()
| ilCronFinishUnfinishedTestPasses::hasCustomSettings |
( |
| ) |
|
◆ hasFlexibleSchedule()
| ilCronFinishUnfinishedTestPasses::hasFlexibleSchedule |
( |
| ) |
|
◆ processPasses()
| ilCronFinishUnfinishedTestPasses::processPasses |
( |
| ) |
|
|
protected |
◆ run()
| ilCronFinishUnfinishedTestPasses::run |
( |
| ) |
|
◆ $db
◆ $lng
| readonly ilLanguage ilCronFinishUnfinishedTestPasses::$lng |
|
protected |
◆ $logger
| readonly TestLogger ilCronFinishUnfinishedTestPasses::$logger |
|
protected |
◆ $now
| int ilCronFinishUnfinishedTestPasses::$now |
|
protected |
◆ $obj_data_cache
◆ $processLockerFactory
◆ $test_ending_times
| array ilCronFinishUnfinishedTestPasses::$test_ending_times |
|
protected |
◆ $test_ids
| array ilCronFinishUnfinishedTestPasses::$test_ids |
|
protected |
◆ $test_pass_result_repository
| TestResultRepository ilCronFinishUnfinishedTestPasses::$test_pass_result_repository |
|
protected |
◆ $unfinished_passes
| array ilCronFinishUnfinishedTestPasses::$unfinished_passes |
|
protected |
◆ $user
| readonly ilObjUser ilCronFinishUnfinishedTestPasses::$user |
|
protected |
The documentation for this class was generated from the following file: