Open pg-wtatum opened 4 months ago
Another pro -- the startup of LO subprocesses is considerably slower than the rest of my Spring Boot application context. Running LO outside the JVM process tree would allow for fast restarts and context refreshes which currently require waiting a considerable time for LO processes to exit and then start up again on the new application context.
Well, this is already supported if you use the ExternalOfficeManager instead of the LocalOfficeManager
. The ExternalOfficeManager
can only connect to an already started office process.
I started maintaining this project in 2016 but it was originally created in 2004. I read a lot about how LibreOffice used to have a lot of memory leaks (RAM constantly growing and conversions starting to be really slow). I think this would be the biggest cons, but maybe LO is stable enough in 2024 to use the ExternalOfficeManager
safely (you can still reconnect after a certain amount of conversions).
the startup of LO subprocesses is considerably slower than the rest of my Spring Boot application context. Running LO outside the JVM process tree would allow for fast restarts and context refreshes which currently require waiting a considerable time for LO processes to exit and then start up again on the new application context.
I personnally used in one of my project the ExternalOfficeManager
while developing and the LocalOfficeManager
in production. You cannot use the auto configuration tho to instanciate an ExternalOfficeManager
, which is something missing from the spring-boot-starter.
Thanks that's all really helpful context, including information about how the project is maintained. I have seen that all the similar projects (unoconvert, gotenberg) support such an option and enable it by default but it's pretty hard to tell if this is cargo cult thinking or something actually operationally necessary in production. Appreciate your efforts on the project and your observations.
Sorry if the title is not accurate -- what I'm really considering is opting out of the mechanism where the LO processes are parented to the JVM process and managed directly by it. I'm aware that might actually not mean OfficeManager is not used. I have seen some references elsewhere to binding JOD to already running LO instances which involves at a minimum setting existingProcessAction option.
My thinking here is that the liveness of LO processes could be handled by something like docker-swarm leaving JOD free to simply connect to any running LO. For me the pros are:
Downsides:
Curious if others can comment on any other pros/cons I might be missing?