Вот что у меня сработало.
Чтобы гарантировать, что информация обновляется во время ее установки в долгосрочном запросе, я делаю $c->finalize_session
сразу после обновления некоторой важной информации, связанной с сеансом:
$c->session->{important_info} = "new value";
$c->finalize_session;
Я убедился, что другие запросы набирают правильное значение после этого.
Я не наблюдал никаких побочных эффектов, вызывающих $c->finalize_session
много раз во время запроса только для того, чтобы обеспечить обновление данных сеанса, но я не уверен в этом.
Одной из данных, которые я задаю таким образом, является счетчик для обновления индикатора выполнения для обратной связи с пользователем (поскольку эта задача занимает много времени).Я не знаю, является ли это лучшим способом сделать это, я буду признателен за любое предложение.