Моя цель: настроить State Machine для сохранения внутренних данных при любых изменениях и восстановления из базы данных, когда мне нужно их использовать.
Реализация< /strong>: Spring Docs
Проблема: он отлично работает при одном запуске (сохранение в БД и восстановление). После перезапуска конечный автомат сбрасывается в исходное состояние (с потерей всех данных) при первом использовании.
Соответствующая конфигурация конечного автомата:Соответствующая конфигурация конечного автомата: р>
@EnableStateMachineFactory
@Configuration
@AllArgsConstructor
public class StateMachineConfig extends StateMachineConfigurerAdapter {
private final StateMachineRuntimePersister stateMachineRuntimePersister;
@Bean
public StateMachineService stateMachineService(
StateMachineFactory stateMachineFactory,
StateMachineRuntimePersister stateMachineRuntimePersister) {
return new DefaultStateMachineService(stateMachineFactory, stateMachineRuntimePersister);
}
@Override
public void configure(StateMachineConfigurationConfigurer config) throws Exception {
config.withConfiguration()
.listener(listener())
.autoStartup(true)
.and()
.withPersistence().runtimePersister(stateMachineRuntimePersister)
;
}
// states, transitions, actions etc. config...
}
@Configuration
public class JpaPersisterConfig {
@Bean
public StateMachineRuntimePersister stateMachineRuntimePersister(
JpaStateMachineRepository jpaStateMachineRepository) {
return new JpaPersistingStateMachineInterceptor(jpaStateMachineRepository);
}
}
Использование:
@Service
@AllArgsConstructor
public class SomeClass{
private StateMachineService stateMachineService;
public void someMethod(String userId) {
StateMachine stateMachine = restoreStateMachine(userId);
// work with stateMachine, sending events
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... m-database
Как справиться со сбросом Spring State Machine после восстановления из базы данных? ⇐ JAVA
Программисты JAVA общаются здесь
1732608216
Anonymous
[b]Моя цель[/b]: настроить State Machine для сохранения внутренних данных при любых изменениях и восстановления из базы данных, когда мне нужно их использовать.
[b]Реализация< /strong>: Spring Docs
Проблема[/b]: он отлично работает при одном запуске (сохранение в БД и восстановление). [b]После перезапуска конечный автомат сбрасывается в исходное состояние (с потерей всех данных) при первом использовании.[/b]
Соответствующая конфигурация конечного автомата:Соответствующая конфигурация конечного автомата: р>
@EnableStateMachineFactory
@Configuration
@AllArgsConstructor
public class StateMachineConfig extends StateMachineConfigurerAdapter {
private final StateMachineRuntimePersister stateMachineRuntimePersister;
@Bean
public StateMachineService stateMachineService(
StateMachineFactory stateMachineFactory,
StateMachineRuntimePersister stateMachineRuntimePersister) {
return new DefaultStateMachineService(stateMachineFactory, stateMachineRuntimePersister);
}
@Override
public void configure(StateMachineConfigurationConfigurer config) throws Exception {
config.withConfiguration()
.listener(listener())
.autoStartup(true)
.and()
.withPersistence().runtimePersister(stateMachineRuntimePersister)
;
}
// states, transitions, actions etc. config...
}
@Configuration
public class JpaPersisterConfig {
@Bean
public StateMachineRuntimePersister stateMachineRuntimePersister(
JpaStateMachineRepository jpaStateMachineRepository) {
return new JpaPersistingStateMachineInterceptor(jpaStateMachineRepository);
}
}
Использование:
@Service
@AllArgsConstructor
public class SomeClass{
private StateMachineService stateMachineService;
public void someMethod(String userId) {
StateMachine stateMachine = restoreStateMachine(userId);
// work with stateMachine, sending events
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79225804/how-to-deal-with-spring-state-machine-resetting-after-restore-from-database[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия