понедельник, февраля 11, 2008

Работа с интервалами. SmartFoxServer

Работать с интервалами полезно. Иначе можно совсем заработаться и свихнуться.
И в SmartFoxServer есть методы работы с интервалами:

setInterval(functionName, interval, params) - устанавливает новый интервал.
functionName - функция, которая будет вызвана после заданного интервала
interval - количество времени (в млсек.) между вызовами функции
params - объект (или ассоциативный массив), содержащий набор свойств
Возвращает ссылку на объект интервала.

clearInterval(intervalObj) - останавливает интервал и удаляет его.
intervalObj - объект ранее созданного интервала.

ВАЖНО: После своего создания, объект интервала осуществляет постоянный вызов заданной функции через заданное время. Необходимо обязательно явно, через clearInterval удалять объекты интервалов, если необходимость в них отпала. Иначе рано или поздно сервер просто загнется.

* * *

С отключением интервала реально жестко - если запущен какой-нибудь ошибочный интервал, который не умеет отключаться, убить его можно только перезагрузкой сервера. Ни перезагрузка комнаты или зоны, ни переключения активности комнаты/зоны не помогут. Наверное, есть смысл сделать свою заготовку интервала с зашитым в него отключением через какой-то срок. Однако, и это может не помочь, если, к примеру, запустить таймер с допущеной в синтаксисе обработчика ошибкой - интервал запустится, обработчик будет генерить ошибку и вылетать до следующего цикла.

Комментариев нет: