Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Новый топик    Ответить
 Отдельный процесс  [new]
nurlybekovnt
Member

Откуда:
Сообщений: 17
Добрый день!
Разрабатываю тестирование студента. Дается ему определенное время, на клиенте с временем все решил(в базе хранится время начала тестирование, в OnPreHttp вычисляется оставшееся время, запускаю таймер на клиенте с вычисленным временем, если время заканчивается или студент нажал закончить, с клиента делается запрос серверу о time's left, в базу сохраняется конечное время, вычисляется баллы студента), но если пользователь запустил тест и вышел, не вернулся, сервер должен сам при time's left, зафиксировать время, вычислить баллы. Ответы студента во время тестирования на сервере сохраняются(angular), на счет них не переживайте )))
5 июл 17, 07:36    [20614256]     Ответить | Цитировать Сообщить модератору
 Re: Отдельный процесс  [new]
nurlybekovnt
Member

Откуда:
Сообщений: 17
Подумывал о веб приложениях в кашэ, но смог
5 июл 17, 07:38    [20614260]     Ответить | Цитировать Сообщить модератору
 Re: Отдельный процесс  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3541
Решение задачи вообще лежит не в области Каше.
Баллы зависят от времени? Если нет, вычисляйте их при каждом сохранении результата.
Добавьте поле типа "флаг нормального завершения", а время завершения записывайте при каждом обращении с клиента.
Сделайте пинг с клиента, который периодически будет сообщать серверу о том, что клиент активен.
Можно сделать вычисление баллов по запросу.

На крайний случай, если вам при окончании тестирования нужно будет куда-то что-то отослать, можете сделать задачу планировщика, которая с некоторым интервалом будет проверять базу и делать определенные действия.

>запускаю таймер на клиенте с вычисленным временем
А вот этого я бы не стал делать. Доверять какие-либо вычисления на клиенте нехорошо. А если на клиенте время ошибочное? А если во время тестирования время изменят? А если другой часовой пояс? Максимум что можно сделать - это просто информационный таймер.
5 июл 17, 08:17    [20614312]     Ответить | Цитировать Сообщить модератору
 Re: Отдельный процесс  [new]
ну я
Member

Откуда: Stalingrad
Сообщений: 1104
nurlybekovnt
в OnPreHttp вычисляется оставшееся время, запускаю таймер на клиенте с вычисленным временем, если время заканчивается или студент нажал закончить, с клиента делается запрос серверу о time's left

А за дверью стоят ушлые старшекурсники и по секрету рассказывают про кнопку F5, по которой страница снова загружается и отсчет времени начинается снова.
5 июл 17, 13:32    [20615559]     Ответить | Цитировать Сообщить модератору
 Re: Отдельный процесс  [new]
nurlybekovnt
Member

Откуда:
Сообщений: 17
ну я,

Ради этого я и хранится время начала экзамена, чтобы даже если он откроет в другом браузере, время продолжается, исходя из записи в базе вычисляется время.
5 июл 17, 17:48    [20616733]     Ответить | Цитировать Сообщить модератору
 Re: Отдельный процесс  [new]
nurlybekovnt
Member

Откуда:
Сообщений: 17
Блок А.Н.,

Да, таймер просто информационный на самом деле все идет по времени сервера, при каждом обращении к серверу производится проверка окончании времени на тестирование. Но если клиент перестанет обращаться, то тест никогда не закончится фактически, поле "FinishTime" останется пустым, оценка за тестирование не проставится, а хотелось бы чтобы сервер при left time сам автоматически закончил тест, а не исходя от обращения клиента.
Баллы вычисляются за правильные ответы, а ответ студента до того момента, как закончить тест уже будут храниться в базе, потому что при каждой нажатии на радиокнопку делается post запрос с помощью ангуляра.
5 июл 17, 17:54    [20616746]     Ответить | Цитировать Сообщить модератору
Все форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M Ответить