Четверг, 24 Сентября 2020 г. 23:19
+ в цитатник
На одной машине развернуто два tomcat сервера. Так сложилось, оба начали читать разные xls файлы. Двльше я вижу по логу одного из томкатов, что он видит вкладки файла, которые в тот же момент читает приложение на другом томкате. Сам понимаю, что фигня какая-то, но других объяснений нет. На обоих томкатах - одно и то же приложение, которое читает xls файлы последовательно. Единственный подозрительный момент - в обоих случаях используются stream, но именно stream(), а не parallelStream(). Кроме того, в логе я вижу, что исполнение идёт последовательно, файл за файлом, в противном случае я бы видел в логе немного другую картину. В FAQ по Apache POI сказано:
In short: Handling different document-objects in different threads will work. Accessing the same document in multiple threads will not work.
This means the workbook/document/slideshow objects are not checked for thread safety, but any globally held object like global caches or other data structures are guarded against multi threaded access accordingly.
(
https://poi.apache.org/help/faq.html#faq-N10224)
То есть, если из разных потоков вызывается WorkbookFactory.creat(file), всё должно быть нормально?
Понимаю, что формулирую мутно, но сам не могу понять, что происходит. Может кто-нибудь что-нибудь посоветовать?
https://ru-programming.livejournal.com/1371991.html
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-