Как отключить историю в весенней активности - PullRequest
0 голосов
/ 28 января 2019

Я использую Activiti с весенней загрузкой, у меня мало проблем с производительностью при получении данных из таблиц activiti, я думаю, это связано с таблицами истории.

Когда я запрашиваю данные изДля таблиц activiti в 1-м сценарии потребовалось 0,239 секунды, чтобы получить результат, но во 2-м сценарии потребовалось 1,884 секунды для извлечения данных из базы данных.

enter image description here

Это основная причина, я хочу отключить историю.

Технический стек:

Spring Activiti - 5.22.0

Версия Spring Boot - 1.5.8. Выпуск

MyBatis для ORM

Пожалуйста, дайте мне знать, есть ли какая-либо конфигурация для отключения истории и будут ли проблемы, если мы отключим историю.

Ответы [ 3 ]

0 голосов
/ 31 января 2019

Глядя здесь: https://github.com/Activiti/Activiti/blob/5.x/modules/activiti-spring-boot/spring-boot-starters/activiti-spring-boot-starter-basic/src/main/java/org/activiti/spring/boot/ActivitiProperties.java#L46

Вы можете попробовать:

spring.activiti.historyLevel=none

В вашем файле application.properties.Надеюсь, это поможет.

0 голосов
/ 01 февраля 2019

Мы можем остановить историю, сохранив уровень истории как «НЕТ».Но главное здесь - где установить уровень истории.Используя идею @ e.g78, я обновил код на уровне конфигурации, но это не решило мою проблему.Поэтому я обновил свой код, как показано ниже.

@Autowired
private SpringProcessEngineConfiguration config;

@GetMapping("/startProcess")
public String startProcess() {
    config.setHistoryLevel(HistoryLevel.NONE);
    RuntimeService runtimeService = config.getRuntimeService();
    runtimeService.startProcessInstanceByKey("testing_DeletingHistory", "start");

Спасибо, например ,78.Ваш ответ мне помог, с небольшими изменениями.

0 голосов
/ 30 января 2019

Вы можете отключить историю, установив атрибут истории в ProcessEngineConfiguration в своем классе @Configuration.

@Configuration
public class ActivityConfig {

    @Autowired
    DataSource dataSource;

    @Bean
    public DataSourceTransactionManager getTransactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean
    public ProcessEngineConfigurationImpl getProcessEngineConfiguration() {
        SpringProcessEngineConfiguration res = new SpringProcessEngineConfiguration();
        res.setDataSource(dataSource);
        res.setHistory("full");
        res.setTransactionManager(getTransactionManager());
        return res;
    }

    @Bean
    public ProcessEngineFactoryBean getProcessEngine() {
        ProcessEngineFactoryBean res = new ProcessEngineFactoryBean();
        res.setProcessEngineConfiguration(getProcessEngineConfiguration());
        return res;
    }

    @Bean
    public RepositoryService getRepositoryService() throws Exception {
        return getProcessEngine().getObject().getRepositoryService();
    }

    @Bean
    public FormService getFormService() throws Exception {
        return getProcessEngine().getObject().getFormService();
    }

    @Bean
    public TaskService getTaskService() throws Exception {
        return getProcessEngine().getObject().getTaskService();
    }

    @Bean
    public RuntimeService getRuntimeService() throws Exception {
        return getProcessEngine().getObject().getRuntimeService();
    }

    @Bean
    public HistoryService getHistoryService() throws Exception {
        return getProcessEngine().getObject().getHistoryService();
    }

    @Bean
    public IdentityService getIdentityService() throws Exception {
        return getProcessEngine().getObject().getIdentityService();
    }
}

Если вы установите для истории значение NONE, у вас не возникнет проблем, но также не будет информации о прошлых действиях.

Можно установить следующие уровни: NONE, ACTIVITY, AUDIT, FULL.Вот подробности: https://www.activiti.org/5.x/userguide/#historyConfig

...