Как справиться со сбросом Spring State Machine после восстановления из базы данных?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как справиться со сбросом Spring State Machine после восстановления из базы данных?

Сообщение Anonymous »

Моя цель: настроить 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»