Мне нужно иметь две сессии с теми же данными. Как я могу это сделать?Скопировать сеанс для потока
Мой сценарий: пользователь собрал некоторые данные в сеансе во время прохождения сайта. Они нажимают кнопку, и теперь я запускаю поток, чтобы записать то, что у меня есть. К сожалению, код, который я унаследовал, передает идентификатор сеанса и использует его для доступа к данным. К сожалению, эта запись занимает некоторое время, поэтому пользователи часто попадают на другие страницы и испортили данные, которые я записываю.
- Потребитель сеанс, что они могут продолжать играть с
- My нитью нужен сеанс, который не собирается менять
В идеале я бы иметь возможность копировать данные сеанса в два сеансы, по одному для каждого. Мне действительно понравилось бы решение, которое каким-то образом дает мне эти две сессии, потому что рефакторинг кода будет кошмаром. Я понимаю, это кажется почти невозможным. Самое близкое, что я могу понять, это скопировать данные, аннулировать сеанс, заново создать его для пользователя, а затем передать недопустимый идентификатор сеанса в поток и надеяться, что он не был очищен — не план, которому я доверяю.
Если нет другого способа, , пожалуйста, предложите альтернативы. Приоритет - скорость рефакторинга; в противном случае, всего элегантность.
Подробнее об осуществлении: поток запускает несколько запросов, включая идентификатор сеанса, каждый из которых генерирует PDF, основываясь на данных, собранных в сеансе, которые объединены потоком в главный документ.
Неверная копия сеанса может быть недостаточной, если объекты в сеансе являются изменяемыми и могут быть изменены путем последующих действий пользователя. Не можете ли вы просто собрать минимальный набор информации, достаточный для завершения фоновой задачи? – isnot2bad
Не имеет смысла, что для процесса в этом потоке потребуется фактическая сессия, а не структура данных с определенными элементами из сеанса. – developerwjk
Как вы, ребята, работаете с запросами, используя идентификатор сеанса? – ricksmt