2017-02-19 3 views
0

Я разрабатываю функцию загрузки с помощью Spring MVC. Все загрузки от клиента достигают конечной точки, которая обрабатывает вызов ajax. Контроллер, который сопоставляется с конечной точкой, вызывает функцию в классе «@Service».Для синхронизации пользовательского уровня весной MVC

Эта функция выполняет фактическую загрузку, загружая ее в мою облачную файловую систему и изменяя переменную сеанса. Проблема в том, что для завершения загрузки требуется некоторое время. Таким образом, время, когда мой контроллер возвращается, продлевает время. Я хочу, чтобы мой контроллер сразу вернулся, запустив поток, чтобы обработать загрузку, а затем вернуться. Если несколько загрузок с одного и того же клиента одновременно вызывают конечную точку, я хочу обеспечить синхронизированный доступ к переменной сеанса, как это сделать?

ответ

0

Spring использует технологию сервлетов, для каждого запроса на сервлет (не разные экземпляры) создается различный поток, поэтому то, что вы действительно хотите выполнить по потокам, уже сделано.

+0

Скажите, что два запроса поступают примерно одновременно, оба они пытаются изменить атрибут сеанса. Это приведет к некоторым проблемам синхронизации? – lostdong12

+0

Ни один запрос не будет обрабатываться по разному потоку –

+0

Но эти два потока участвуют в изменении данных общих данных сеанса, как это работает? – lostdong12

Смежные вопросы