Я создаю веб-сайт, который предлагает тренировку 1 на 1 по различным темам.Обучение проводится через Интернет (видеозвонок, загрузка документов и тому подобное), и одна из самых важных вещей - это то, что клиент платит за минуту.Моя проблема заключается в следующем: как я узнаю, когда сеанс коучинга заканчивается (чтобы я мог правильно выставить счет клиенту)?
Я планирую сохранить сеанс коучинга в БД примерно так:
coach_id:integer
client_id:integer
created_at:datetime
updated_at:datetime
in_progress:boolean
В конце сеанса я сделаю разницу между updated_at и creation_at и получу длину сеанса.
Вот потенциальные проблемы, которые я вижу:
тренер теряет доступ в Интернет => в этом случае клиент нажимает кнопку на веб-сайте, которая уведомляет нас о том, что у сеанса возникла проблема, и updated_at
сеанса будет обновлено, а in_progress
будетбыть установленным на false
клиент теряет доступ в интернет => тот же рабочий процесс, как если бы тренер терял доступ в интернет
оба теряют доступ в интернет =>это самый сложный случай.Я не уверен, как уведомить сервер о том, что сеанс следует считать завершенным.Я думаю сделать это с помощью push, и браузер клиента и браузер тренера обновляют сервер каждую минуту.В худшем случае ошибка приведет к разнице в 1 минуту, что является приемлемым.Недостатком является то, что я думаю, что это может сильно загрузить сервер, и я не знаю, будет ли это жизнеспособным решением, если у нас будет много пользователей.
Что выдумать об этом подходе?В случае, если это имеет значение, приложение будет построено на Rails 3.2.