| 
 | 
| 
 
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?desktop=1&fid=59&tid=2120850]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    62ms | 
get topic data:  | 
    14ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    61ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 13ms | 
| total: | 186ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...