Форум → Программирование → PHP для идиотов → Расширения PHP → Есть ли callback для session_destroy?
Есть ли callback для session_destroy?
Страницы: ← Предыдущая страница →
-
28 ноября 2009 г. 14:31, спустя 1 час 21 минуту 57 секунд
в ГК можно поймать те которые отвалились по таймауту
точнее тока они там и будут потому что все остальные были корректно закрыты -
1 декабря 2009 г. 17:23, спустя 3 дня 2 часа 52 минуты
ты пробовал словить? или это в теории?
в ГК можно поймать те которые отвалились по таймауту
точнее тока они там и будут потому что все остальные были корректно закрытыhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
-
1 декабря 2009 г. 17:55, спустя 8 минут 12 секунд
Абырвалг, ну можно повесить колбек и словить все мертвые сессии, а там уже на основании названий файлов их удалять и еще что-то делатьhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
-
1 декабря 2009 г. 18:11, спустя 8 минут 31 секунду
Абырвалг, да, колбек запустится в момент когда сработает gc, а там уже сам разруливай померли они или нетhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
1 декабря 2009 г. 18:32, спустя 20 минут 56 секунд
все это в теории, на практике не удивлюсь что опять: на винде рабоатет не так или тп, в линуксе глючит, в фри удаляет сначала а потом запускает и ко всему этому прибавляется вероятность того что вообще не сработает ничто … ебанный пых, вечно с ним такая хуйнСапожник без сапог -
1 декабря 2009 г. 18:35, спустя 2 минуты 53 секунды
смотри кейс
-сессия стартует
-сессия наполняется
-сессия лежит ничего не делает
…
-стартует ГК
-проверяет если последний апдейт был раньше чем NOW-TTL то удаляет сессию
-profit -
1 декабря 2009 г. 22:41, спустя 4 часа 5 минут 39 секунд
По этому поводу есть вопросы, которые снимаются простым экспериментом, но делать его меня ломает, как видимо и всех.
- как стартует ГК? когда, с чего?
- я повесил калбэк на уничтожение, мой скрипт сдох через 0,05 секунды, ГК запустился через тыщу миллионов лет, кого он будет запускать? -
1 декабря 2009 г. 23:15, спустя 34 минуты 45 секунд
1. Работая сегодня с gc, я сделал выводы, он запускается каждый раз при старте скрипта.
Однако, можно настроить gc_lifetime и gc_probability для контролирования поведения gc
2. То есть destroy? Или ты о чем?
>ГК запустился через тыщу миллионов лет, кого он будет запускать?
будет запускать то, что ты прописал как калбек и ему похую что ты там пытаешся делатьhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
2 декабря 2009 г. 23:09, спустя 23 часа 53 минуты 41 секунду
adw0rd, привиди, пожалуйста, пример, я нихуя не понимаю в этой еботе. -
3 декабря 2009 г. 1:12, спустя 2 часа 3 минуты 13 секунд
завтра, на работе…https://smappi.org/ - платформа по созданию API на все случаи жизни -
3 декабря 2009 г. 16:49, спустя 15 часов 36 минут 54 секунды
У меня есть у каждого сателита логгер, который нужен для того, чтобы собирать логи и отдавать их центральному серверу.class PanjoStatist { public static $logger = NULL; public static function init() { if (self::$logger == NULL) { self::$logger = new PanjoStatist; } } private function __construct() { session_set_save_handler( array($this, "open"), array($this, "close"), array($this, "read"), array($this, "write"), array($this, "destroy"), array($this, "gc") ); } /** * Добавление записи лога * @return boolean true */ public function add() { // опущено } /** * Сохранения в лог-файл * @param string $session_id * @param string $data serialized arrays * @return boolean true */ public function save ($session_id, $data) { // сюда передается имя сессии и данные из файла сессий // далее я криптую (RSA) тут данные сессии и записываю в файл лога } // куча кода опущено /** * Этот метод срабатывает когда запускается gc */ public function gc($maxlifetime) { global $sess_save_path; $prefix = '/sess_'; // перебираю файлы сессий в каталоге, выбирают от туда данные у которых время жизни истекло и удаляю их foreach (glob($sess_save_path.$prefix.'*') as $filename) { if (filemtime($filename) + $maxlifetime < time()) { $session_id = substr($filename, strlen($sess_save_path.$prefix)); $this->save($session_id, file_get_contents($filename)); unlink($filename); } } return true; } }
Стартует все это дело у меня так:if(Panjo::settings('PanjoStatist')) { PanjoStatist::init(); } session_name(Panjo::settings('session_name')); session_set_cookie_params(Panjo::settings('session_timeout')); // ставим куку на 600 сек ini_set('session.gc_maxlifetime', Panjo::settings('session_timeout')); // каждые 600 сек ini_set('session.gc_probability', 100); // 100% gc сработает (в теории, а на практике замечал глюки) // делитель, типа если gc_probability = 100, а gc_divisor = 2, то gc стартанет на 50% // если gc_divisor = 3, то gc стартанет на 33% вероятности ini_set('session.gc_divisor', 1); session_start();
Спустя 59 сек.Вот что я понял в результате тестовhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
23 декабря 2009 г. 0:50, спустя 19 дней 8 часов
http://habrahabr.ru/blogs/php/78774/ вот еще примерhttps://smappi.org/ - платформа по созданию API на все случаи жизни
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!