Время таймера после короткого 3 - 30 секунд сетевого сбоя уменьшается на 10 - 30 минут

Время таймера после короткого 3 - 30 секунд сетевого сбоя уменьшается на 10 - 30 минут

от Alex Nemch -
Количество ответов: 3

Эффект наблюдается при максимальной нагрузке на сеть: 150 студентов из 6 компьютерных классов одновременно сдают экзамен использую тест Moodle, заняты все рабочие места.

Проверено:

Нагрузка на сервер (20 ядер, 64 Гб память) не более 20% (там еще кое-что крутится).

Время на сервере и ПК синхронизировано с сервером времени.

Трассировка показала существенные потери пакетов в сегменте сети сервера.

Может ли последнее обстоятельство быть причиной крайне болезненных провалов таймера или нужно искать в другом месте?

И может кто-нибудь подсказать: где именно таймер работает на сервере или в браузере и как он устроен, что использует (системные часы сервера/ПК, скрипты php/js, куки...)?

С уважением, Александр Немченко.




В ответ на Alex Nemch

Re: Время таймера после короткого 3 - 30 секунд сетевого сбоя уменьшается на 10 - 30 минут

от Vadim Tabunshchik -
Изображение пользователя Developers
/mod/quiz/renderer.php - public function initialise_timer идет вызов JavaScript library с инициализацией 'M.mod_quiz.timer.init', прописанной в /mod/quiz/module.js (стр. 47-149 'M.mod_quiz.timer')
В ответ на Vadim Tabunshchik

Re: Время таймера после короткого 3 - 30 секунд сетевого сбоя уменьшается на 10 - 30 минут

от Alex Nemch -
Большое спасибо, Вадим!
А не можете сказать он, таймер, конечно индивидуален для каждого пользователя, но где храниться это число, т.е. откуда оно берется, если после сбоя пользователь перелогинится и нужно восстановить счетчик?
Почему он убавляется на существенно большую величину, чем реально прошло времени?
Если не знаете точно, может быть есть гипотеза, которую стоит проверить?
Это может сэкономить время на поиски - послезавтра следующий экзамен и все почти наверняка повторится ((
В ответ на Alex Nemch

Re: Время таймера после короткого 3 - 30 секунд сетевого сбоя уменьшается на 10 - 30 минут

от Vadim Tabunshchik -
Изображение пользователя Developers
В базе данных в таблице mdl_quiz хранится время ограничения на попытку - timelimit.
Время начала попытки известно, инициализируется таймер и начинается обратный отсчет. PHP-класс для правила ограничения по времени описан тут: /mod/quiz/accessrule/timelimit/rule.php
Таймер считает непрерывно, вышел/зашел студент, обрыв связи, т. п. - роли не играет.
Почему у вас такие скачки по времени - для меня загадка.