mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 17:14:59 +03:00
Владельца сессии хранит её подписанное содержимое, отдельной колонки у django_session нет, поэтому счётчик сессий сотрудника расшифровывал строки и сравнивал. Перебиралась вся таблица — а просроченные строки Django сам не удаляет и `clearsessions` не звал никто, так что стоимость просмотра карточки сотрудника росла вместе с историей входов за всё время. Перебор ограничен живыми сессиями, а чистку просроченных ведёт maintenance-цикл воркера. Там же исправлено голодание самого воркера: обработка события обрывала цикл на `continue`, и при непрерывном потоке событий — а породить его может кто угодно через публичный виджет — переставали забираться входящие сообщения и истекать приглашения на звонки. Периодические работы теперь выполняются в любом случае, а сон остался только когда работы нет: скорость разбора очереди не пострадала. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>