Как указать QuarkusApplication ждать, пока реактивная вершина MySQLPool завершит выполнение оператора executeBatchAndForget?
У нас есть требование загрузить огромный файл в базу данных MySQL. Я написал простой
QuarkusApplication
с
quarkus-reactive-mysql-client
выполнить
executeBatchAndForget
для пакетного импорта записей в БД. Я вижу приведенную ниже ошибку, которая предполагает, что основное приложение остановлено, и, следовательно, пул закрыт.
ERROR [io.qua.mut.run.MutinyInfrastructure] (vert.x-eventloop-thread-0) Mutiny had to drop the following exception: io.vertx.core.impl.NoStackTraceThrowable: Pool closed
я мог бы использовать
executeBatchAndAwait
который устраняет реактивный характер приложения, следовательно, избегает его.
Есть ли способ остановить закрытие основного приложения до тех пор, пока MySqlpool не завершит обработку?
Обновлять
Я пробовал обходной путь. Скажем, например, если у меня есть
n
партии (количество записей/размер партии), и если я запускаю
executeBatchAndForget()
для n записей, а затем запустить
executeBatchAndAwait()
для
remainder
, приложение, кажется, ожидает завершения всех вставок. В случае отсутствия остатка,
executeAndAwait()
из
SELECT
заявление также, кажется, работает.