Как установить тайм-аут для переменных клиентской области в Coldfusion?

Прошу прощения, если это "духовный" вопрос. Кажется, что ответ должен быть легко доступен для Google, но я еще не нашел его.

Я работаю над большим приложением Coldfusion, которое хранит большое количество данных сеанса/пользователя в области клиента (т.е. ‹cfset Client.UserName = "JoshuaC"›). Я не писал это приложение, и я не могу позволить себе роскошь серьезно его рефакторить.

Мне дали задание установить время ожидания переменных клиента через 72 часа. Я не совсем уверен, как это сделать. Если бы я написал приложение, я бы сохранил переменные в области сеанса, а затем изменил атрибут sessiontimeout тега CFAPPLICATION. Как бы то ни было, я не уверен, влияет ли этот тайм-аут на переменные клиента или каков их уровень постоянства. То, как приложение работает сейчас, переменные клиента никогда не истекают, и только очистка файлов cookie пользователя или посещение страницы выхода, которая устанавливает для всех переменных приложения области клиента значение «», очистит значения.

Конечно, я мог бы создать какую-то переменную временной метки, например Client.LastAccessDateTime, и поместить что-то в Application.cfm, чтобы очистить клиентские переменные, если эта дата и время более чем за 72 часа до Now(). Но должен быть лучший способ, верно?


person Joshua Carmody    schedule 24.03.2010    source источник


Ответы (2)


В зависимости от того, используете ли вы источник данных или реестр в качестве хранилища клиентов, вы должны установить «Очистить данные для клиентов, которые остаются непосещенными в течение 90 дней до 3 дней (= 72 часов) на

Администратор ColdFusion => Переменные клиента => Реестр

or

Переменные клиента => Страница NameOfDatabase.

Если клиентские переменные хранятся в виде файлов cookie, вам необходимо настроить срок действия при настройке файла cookie.

Интервал очистки на странице «Переменные клиента» определяет только то, как часто ColdFusion выполняет операцию очистки в хранилищах ваших клиентов (= ищет переменные клиента с истекшим сроком действия, чтобы удалить их).

person Andreas Schuldhaus    schedule 24.03.2010

Я полагаю, вы ищете параметр Purge Interval, который настраивается в администраторе CF на странице «Параметры сервера» > «Переменные клиента». Интервал по умолчанию 1 час 7 минут.

EDIT: это значение параметра не совсем то, что вам нужно. Извините, посмотрите мой комментарий о чистке - думаю, он более точен.

person Sergey Galashyn    schedule 24.03.2010
comment
@Sergii - Это интересно ... может быть, это то, что я ищу. Но если я установлю интервал на 72 часа, а переменная будет установлена ​​на 71-й час, будет ли она очищена через 1 час? Или это интервал очистки с момента последнего доступа? - person Joshua Carmody; 24.03.2010
comment
См. Ответ Андреаса, первый абзац. Если вы используете базу данных или реестр для хранения клиентских переменных, вы можете настроить собственный параметр очистки (удалять данные для клиентов, которые не посещались в течение 3 дней — в течение ваших 72 часов, правильно), что означает Включить этот параметр, если вы хотите ColdFusion для периодической очистки клиентских данных, к которым не обращались в течение указанного количества дней. Думаю, это отвечает на ваш вопрос. Извините, я не могу сказать на 100%, потому что не использовал область клиента вместо сеанса. - person Sergey Galashyn; 25.03.2010