|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Доброго времени суток! Есть приложение в котором используется spring batch и асинхронные методы (@Async или CompletableFuture). Есть метод создания/сохранения сущности, который и является асинхронным(@Async или CompletableFuture): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
либо Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
либо Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Но данные не сохраняются в базе. Как только я "отключаю" spring batch(убирая его из контекста spring), то сохранение в БД происходит. Ощущение, что spring batch что-то "перебивает" (транзакции?). Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 19:19 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Выглядит так будто спринг просто не знает через что твою футуру исполнять и не исполняет ее. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 21:25 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
С определением через что выполнять тоже не срабатывает Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
И потом Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2020, 21:31 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
ну тут два варианта - убедиться исполняется ли код репозитория. если нет то дальше копать конфиг спринга, если да то копать почему не сохраняется. у меня была похожая проблема правда с хибером но там решилось заменой форкджойна на что то там другое. уж и не помню деталей. надеюсь помог. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 11:21 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
andreykaT ну тут два варианта - убедиться исполняется ли код репозитория. если нет то дальше копать конфиг спринга, если да то копать почему не сохраняется. у меня была похожая проблема правда с хибером но там решилось заменой форкджойна на что то там другое. уж и не помню деталей. надеюсь помог. Если дебажить метод save, тот что в реализации SimpleJpaRepository Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
то он выполняется и ошибок не наблюдается. Но есть разница в самом объекте - если отключить batch, то в сохраняемой сущности есть заполненный id, если же batch не отключать, то id = null. Т.е. без batch Код: java 1.
С batch Код: java 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 11:55 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Hubertanyan spring batch ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 20:24 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Hubertanyan spring batch Непонятно к чему это... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 20:55 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Hubertanyan PetroNotC Sharp пропущено... вопрос должен звучать так: "Помогите найти Hello world spring batch." Непонятно к чему это... Кто тебе сказал что эта связка вообще должна работать? Опять не понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 21:14 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Hubertanyan пропущено... Непонятно к чему это... Кто тебе сказал что эта связка вообще должна работать? Опять не понял? Никто не сказал - вот собственно и возник вопрос. Я же не утверждаю, что оно должно работать... Хотя если добавить к @Async @Transactional, то сохранение работает ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 21:20 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Hubertanyan Никто не сказал - вот собственно и возник вопрос. Я же не утверждаю, что оно должно работать... Из книги? Из головы? Приснился? .... Я обычно пример в сети ищу при изучении нового. ... Hubertanyan Хотя если добавить к @Async @Transactional, то сохранение работает Значит вопрос закрыт? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 21:27 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Hubertanyan Никто не сказал - вот собственно и возник вопрос. Я же не утверждаю, что оно должно работать... Из книги? Из головы? Приснился? .... Я обычно пример в сети ищу при изучении нового. ... Hubertanyan Хотя если добавить к @Async @Transactional, то сохранение работает Значит вопрос закрыт? 1. Я не тыкаю бездумно код 2. Написал как пример, чтобы описать проблему, см. первое сообщение 3. Конечно же были поиски в сети, ничего подобного не нашел 4. Если такая связка не будет работать, то видимо вопрос закрыт ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 21:34 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Hubertanyan 1. Я не тыкаю бездумно код 2. Написал как пример, чтобы описать проблему, см. первое сообщение 3. Конечно же были поиски в сети, ничего подобного не нашел Извини, но по ТВОЕЙ лигике ты написал код, которого нет в сети и непонятно зачем. "ничего личного" ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 21:49 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Hubertanyan 1. Я не тыкаю бездумно код 2. Написал как пример, чтобы описать проблему, см. первое сообщение 3. Конечно же были поиски в сети, ничего подобного не нашел Извини, но по ТВОЕЙ лигике ты написал код, которого нет в сети и непонятно зачем. "ничего личного" Почему мой код должен быть в сети? Я ТЕБЕ написал для чего я привёл код выше, но ты видимо со своей ЛОГИКОЙ никак не поймёшь, "ничего личного". Если по существу ответить нечего, то проходи мимо.... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 21:56 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Hubertanyan Я ТЕБЕ написал для чего я привёл код выше Для чего этот код. Если для сохранения в базу, то это глупо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2020, 22:17 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Hubertanyan Я ТЕБЕ написал для чего я привёл код выше Для чего этот код. Если для сохранения в базу, то это глупо. Есть некая долгая операция, которую запускает клиент(клиента не должны блокировать). После окончания этой операции нужно внести изменения в БД(сохранить в БД) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 08:07 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Hubertanyan Я ТЕБЕ написал для чего я привёл код выше Для чего этот код. Если для сохранения в базу, то это глупо. Странный вопрос. Для того чтоб асинхронно сохранить данные в базу. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 08:39 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Hubertanyan PetroNotC Sharp пропущено... просто дай цитату и всё))). Для чего этот код. Если для сохранения в базу, то это глупо. Есть некая долгая операция, которую запускает клиент(клиента не должны блокировать). После окончания этой операции нужно внести изменения в БД(сохранить в БД) Если говорить за Spring, стоит посмотреть в сторону Web on Reactive Stack . ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 09:10 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
mad_nazgul Hubertanyan пропущено... Есть некая долгая операция, которую запускает клиент(клиента не должны блокировать). После окончания этой операции нужно внести изменения в БД(сохранить в БД) Если говорить за Spring, стоит посмотреть в сторону Web on Reactive Stack . Да, спасибо! Уже тоже решил в эту сторону посмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 09:12 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
andreykaT Странный вопрос. Для того чтоб асинхронно сохранить данные в базу. Не? мы же рассуждаем. Если автор дает пищу для рассуждений. Например, клиент может не ждать, а закрыть вкладку. Это значит что мы Асинхронно запишем в БД? Или клиент запустил запрос по AJAХ - это Асинхронно? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 09:14 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Hubertanyan, похоже что транзакция заканчивается к тому времени, когда выполняется save во future методе ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 10:35 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
Zzz79 А вооще по логике - JPArepa должен все сохранить-что ему пришло так как по сути это энд поинт вашего приложения Стас. Чо как? Как твоя карантино-удалёнка? Работодатель на плаву? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 14:16 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
artas Hubertanyan, похоже что транзакция заканчивается к тому времени, когда выполняется save во future методе так у него когда транзакшенал стоит тогда ок. а когда не стоит тогда не ок. кек. у меня была другая проблема. без транзакшнл работало а с транзакшнл нет. причем без транзакшнл работало без транзакций. а вообще многопоточка и спринг дата это хрень с непонятным и неожиданным поведением. может хотя я просто его готовить не умел. когда я сюда пришел пожаловаться пару лет назад мне сказали не юзай спринг дату и многопоточку :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 14:27 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
[quot andreykaT#22108789] artas Hubertanyan, когда я сюда пришел пожаловаться пару лет назад мне сказали не юзай спринг дату и многопоточку :) правильно кстати сказали. Хибернейт+мультитред - туда же. + какой практический смысл от future при сохранении объекта ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 17:01 |
|
Spring batch с CompletableFuture или @Async
|
|||
---|---|---|---|
#18+
[quot artas#22108908] andreykaT пропущено... правильно кстати сказали. Хибернейт+мультитред - туда же. + какой практический смысл от future при сохранении объекта ? Да не столько важно future или void, сколько важно асинхронное сохранение в БД. (если я правильно понял Ваш вопрос) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2020, 17:06 |
|
|
start [/forum/topic.php?fid=59&msg=39942370&tid=2120850]: |
0ms |
get settings: |
27ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
438ms |
get tp. blocked users: |
2ms |
others: | 303ms |
total: | 855ms |
0 / 0 |