Size: a a a

2021 March 23

AG

Asad Ganiev in pro.jvm
Alexander Komarov
короче если там реально много данных и они постоянно меняются и сервис критичен к прерыванию, я бы сказал что это сложная задачка для решения в одно лицо
Задачка и вправду сложная. Уточню тогда можем ли остановить БД на некоторое время
источник

AG

Asad Ganiev in pro.jvm
Tim Ami
Жить на монге дальше, при таких вводных цена решения скорее всего будет неприемлема
К сожалению как говорят монго плохо работает на больших нагрузках
источник

AK

Alexander Komarov in pro.jvm
Asad Ganiev
Задачка и вправду сложная. Уточню тогда можем ли остановить БД на некоторое время
ну гасить-то надо не бд, а приклад. чтобы не было момента несогласованности данных.
источник

AG

Asad Ganiev in pro.jvm
Alexander Komarov
ну гасить-то надо не бд, а приклад. чтобы не было момента несогласованности данных.
Ну да, я имел ввиду сервис
источник

AG

Asad Ganiev in pro.jvm
Ок, спасибо
источник

VP

Vladimir Petrakovich in pro.jvm
Asad Ganiev
К сожалению как говорят монго плохо работает на больших нагрузках
А вы переезжаете основываясь на том, что где-то говорят, или это ваше нагрузочное тестирование говорит, что она скоро перестанет вывозить?
источник

AG

Asad Ganiev in pro.jvm
Vladimir Petrakovich
А вы переезжаете основываясь на том, что где-то говорят, или это ваше нагрузочное тестирование говорит, что она скоро перестанет вывозить?
Мне сказали что данные теряются
источник

D

Dima in pro.jvm
Dmitry Ermolchik 🚙💨💨💨
Подскажите, пожалуйста, кто как решает проблему перезапуска TestContainers после @DirtiesContext?
У меня есть много тестов, которые используют БД для чтения оттуда данных, но есть и несколько тестов, которые пишут в БД и это ломает читающие тесты, т.к. появляются неожиданные для них данные.
Скажем так, проблема в том, как остановить статический контейнер. Есть мысли сделать хак из бина в котором в @PreDestroy стонать контейнер, а поднимится он сам, когда новый контекст будет создаваться. Но, может, есть более элегантный способ?
если это актуально
источник

D

Dima in pro.jvm
то синглтон контейнер паттерн
источник

D

Dima in pro.jvm
+ tearDown методы
источник

DE

Dmitry Ermolchik 🚙💨💨... in pro.jvm
@volalex @dmsol я забыл упомянуть, что у меня типа интеграционрого тестирования, я webClient'ом дёргаю endpoint, transactional может сработать для случая с сервисами, когда изнутри тестируешь, за эту идею спасибо, но не в моей ситуации. TearDown и чистка БД вручную более трудозатратный вариант.
В идеале хочется подцепиться к прослушиванию life cycle контекста приложения и стопать контейнер, когда application context уничтожается
источник

AE

Alexandr Emelyanov in pro.jvm
Alexander Komarov
короче если там реально много данных и они постоянно меняются и сервис критичен к прерыванию, я бы сказал что это сложная задачка для решения в одно лицо
У нас миграция планируется на прод, в выходные на тесте бежала почти 36 часов)

На проде так же на все выходные запустим)
источник

A

Artjom Kalita in pro.jvm
Dmitry Ermolchik 🚙💨💨💨
Подскажите, пожалуйста, кто как решает проблему перезапуска TestContainers после @DirtiesContext?
У меня есть много тестов, которые используют БД для чтения оттуда данных, но есть и несколько тестов, которые пишут в БД и это ломает читающие тесты, т.к. появляются неожиданные для них данные.
Скажем так, проблема в том, как остановить статический контейнер. Есть мысли сделать хак из бина в котором в @PreDestroy стонать контейнер, а поднимится он сам, когда новый контекст будет создаваться. Но, может, есть более элегантный способ?
Ты в тех ломающих тестах можешь отдельно подымать контейнер с базкой и тогда для них каждый раз будет запускатся свой контейнер, по времени исполнение это конечно ударит, ну или руками клинапить
источник

A

Artjom Kalita in pro.jvm
Dmitry Ermolchik 🚙💨💨💨
Подскажите, пожалуйста, кто как решает проблему перезапуска TestContainers после @DirtiesContext?
У меня есть много тестов, которые используют БД для чтения оттуда данных, но есть и несколько тестов, которые пишут в БД и это ломает читающие тесты, т.к. появляются неожиданные для них данные.
Скажем так, проблема в том, как остановить статический контейнер. Есть мысли сделать хак из бина в котором в @PreDestroy стонать контейнер, а поднимится он сам, когда новый контекст будет создаваться. Но, может, есть более элегантный способ?
@bsideup как бы ты делал ?
источник

A

Artjom Kalita in pro.jvm
или его уже тута нету ? :( печааль
источник

AG

Alexey Genus in pro.jvm
Так просто нужно чистить базу, не пересоздавая контейнер, если я правильно понял проблему.
источник

DE

Dmitry Ermolchik 🚙💨💨... in pro.jvm
Нужно чистить не всю базу. Т.к  она для тестов частично Liqubase накатывается.
источник

AG

Alexey Genus in pro.jvm
Тогда ещё проще. У liquibase в спринге есть параметр drop-first. Если поставить его в true, то liquibase будет удалять все данные и схему, а потом перенакатывать на каждое создание контекста
источник

AG

Asad Ganiev in pro.jvm
Alexandr Emelyanov
У нас миграция планируется на прод, в выходные на тесте бежала почти 36 часов)

На проде так же на все выходные запустим)
36 часов это овер до фига )) как вы будете решать проблему новых записей во время миграции?
источник

AE

Alexandr Emelyanov in pro.jvm
Asad Ganiev
36 часов это овер до фига )) как вы будете решать проблему новых записей во время миграции?
У нас в выходные никто не пользуется системой)
источник