Потоки, порожденные от родительского процесса в ColdFusion, имеют доступ к областям Session и Client, но только до тех пор, пока родительский процесс не завершится; поэтому, если поток продолжает работать после этого времени, попытка чтения или записи в одну из этих областей, вероятно, приведет к ошибке.
Почему?
Я понимаю, что в области видимости клиента это может храниться в разных местах, включая файлы cookie, поэтому дочернему потоку потребуется доступ к родительскому процессу для установки заголовков, которые будут влиять на файлы cookie; но область действия сеанса всегда хранится в памяти и определяется значениями cfid
/ cftoken
или jsessionid
, которые не изменились бы при нормальных обстоятельствах.
Я не могу придумать ни одной веской причины заблокировать доступ к области сеанса после завершения родительского процесса; и было бы невероятно полезно, если бы это было разрешено.
Например, я хочу запустить длительную хранимую процедуру, когда пользователь входит в систему, и сохранить результат в своем сеансе для доступа через Query of Queries на нескольких других страницах. За исключением этой хранимой процедуры, логин обрабатывается более или менее мгновенно; поэтому, добавив proc, логин замедляется. Если бы я мог создать поток Set - & - Forget для запуска процедуры и сохранения результата в сеансе, это было бы идеально. Я понимаю, что в этом случае возможно, что результат понадобится до того, как он будет сохранен, но я бы обдумал это.
Итак, если есть веская причина заблокировать это, что это?