Я написал код, используя documents4j
библиотеку для преобразования некоторых документов от .docx
до .pdf
.Как управлять LocalConverter и при вызове метода ShutDown()?
Я следовал примерам в документации, и конвертация прекрасно работает с MS-Word, но я замечаю, что после завершения преобразования и методов, результат Java-приложения все еще работает и, похоже, не выходит.
Если я явно закрывать преобразователь, используя execute()
и shutDown()
методы вместо schedule()
, выход приложения, но мне нужно это приложение работать в параллельном режиме, поэтому я не могу явно вызывать shutDown()
иначе вызываю выходы MS-Word и перерывов некоторые еще открывали документы.
Каков наилучший способ использования конвертера для достижения этих целей? LocalConverter
получил способ проверить, есть ли очередь документов для преобразования? С помощью этой информации я мог бы вызвать shutDown()
только с пустой очередью и создать экземпляр нового LocalConverter при следующем запросе конвертации.
Заранее благодарим за ваши ответы!
Дэн
Привет Рафаэль, большое спасибо за ваш быстрый ответ. Так вы предлагаете использовать что-то вроде семафора в Set of Future, возвращенном методом schedule()? Согласно вашему предложению, мне пришлось бы использовать также некоторый механизм синхронизации этого набора. Я прав? Как вы думаете, как долго вы могли бы поделиться следующим выпуском документов4j? –
Я в настоящее время довольно занят, так как я уезжаю в отпуск, но некоторое время этим летом. Однако не должно быть слишком много работы, я добавляю небольшой пример кода –