Как указать 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заявление также, кажется, работает.

0 ответов

Другие вопросы по тегам