|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Igor Mikhailov 2:5005/42.21 13 Jun 2001 21:35:40 To : Pavel Ammosov Subject : как удалять старые сессии в Apache::Session? -------------------------------------------------------------------------------- password: :-P IM>> Использую для сессий Apache::Session, в частности IM>> Apache::Session::MySQL и Apache::Session::File. mod_perl'ом IM>> не пользуюсь, пишу только под CGI. Вопрос: как удалять IM>> старые сессии? Timestamp то я в них кладу, но как получить IM>> итератор по идентификаторам сессий, чтоб по всем пройтись IM>> и удалить дохлые? Hе напрямую же в БД или файлы ломиться. PA> Хехе. Это самая большая фигня в Apache::Session. "Официальный" метод PA> -- субклассировать A:S и вставлять информацию об последнем обновлении PA> самому. PA> Hеофициальный -- завести в таблице с сессиями поле timestamp: PA> и удалять базируясь на нем. А если происходит только чтение? Или каждый раз при чтении update'ить строку? :( PA> Старые данные Apache::Session::File у меня удаляет tmpreaper(8). По времени доступа к файлу? Тут сразу есть проблема - возникает зависимость кода от способа хранения сессий. :( Вообще говоря хочется что то такое: 1) у меня уже есть возможность удалять сессию, id которой я знаю tied(%s)->delete; 2) я в каждую сессию при доступе кладу $s{time}=time; 3) для того, чтоб удалить старые сессии мне нужно только их _перебрать все_. но заниматься угадыванием идентификаторов - жизни не хватит. 4) следовательно нужен интерфейс дающий возможность пройтись по всем сессиям - итераторы. Типа: $session=tied(%s)->first_id; do { my %s; tie %s, 'Apache::Session::MySQL', $session, $params; tied(%s)->delete if $s{time}+60*20<time; } while($session=tied(%s)->next_id); Получаем универсальность интерфейса. В принципе можно дописать самому. Может кто подскажет идею интерфейса получше? With best wishes Igor. Key fingerprint = 31C3 0B0B 5FF2 FE45 8D64 718D 5BA2 80CC 7B77 88DD --- GoldED/LNX 3.0.1 * Origin: Every channel is empty first :) (C) TTY #tomsk (2:5005/42.21) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/32643b27df4b.html, оценка из 5, голосов 10
|