Я столкнулся с проблемой нижеприведенного сценария, где мне нужно очистить все сеансы в моем приложении django с примененными условиями.
- Невозможно использовать cron
- JavaScript веб-приложения запрашивает серверный api в минуту для проверки работоспособности, активен сервер или нет
- После завершения статуса
off
webapp автоматически выходит из системы и очищает сеанс текущего пользователя.
- Проблема в том, что я хочу очистить сеанс всех пользователей
- Может возникнуть ситуация, когда вошел только один пользователь, другие сеансы активны, но не в веб-браузере (это означает, что они недавно закрыли вкладку)
- Другая ситуация - только один сеанс, но он простаивает (закрытая вкладка)
Теперь, как я могу побить все сеансы
Две вещи, которые я придумал:
- Прочитать последнее
PID
и сохранить его в дБ, всякий раз, когда какой-либо пользователь нажимает URL, он будет перепроверять PID и очищать все сеансы в случае несовпадения PID (Не уверен, что * PID
может быть таким же после перезапуска)
- Событие перезапуска сервера должно прослушиваться и завершать все сеансы (не знаю, как реализовать,
SIGHUP
вид событий)
Архитектура проекта:
- Linux
- Python2.7 (Джанго)
- Nginx
Любые другие предложения, пожалуйста.