我正在使用Activiti和spring boot,我在从activiti表中获取数据时遇到了一些性能问题,我想这是由于历史表的原因。
当我从activiti表中查询数据时,在第一个场景中花了0.239秒才得到结果,但在第二个场景中花了1.884秒从数据库中获取数据。

这是主要原因,我想禁用历史记录。
技术堆栈:
Spring活动- 5.22.0
Spring Boot版本-1.5.8版本
用于对象关系管理的MyBatis
请让我知道,是否有任何配置来禁用历史记录,如果我们禁用历史记录会有任何问题。
发布于 2019-01-30 17:04:25
您可以通过在@Configuration类中设置ProcessEngineConfiguration的历史记录属性来禁用历史记录。
@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();
}
}如果您将历史记录设置为无,您将不会有任何问题,但也不会有关于过去活动的信息。
您可以设置的级别为:无、活动、审核、完全。以下是详细信息:https://www.activiti.org/5.x/userguide/#historyConfig
发布于 2019-01-31 17:29:46
您可以尝试:
spring.activiti.historyLevel=none在您的application.properties文件中。希望这能有所帮助。
发布于 2019-02-01 12:33:44
我们可以通过将历史级别保持为“无”来停止历史记录。但这里的要点是在哪里设置历史级别。我使用@e.g78 idea更新了配置级别的代码,但这并没有解决我的问题。所以我更新了代码,如下所示。
@Autowired
private SpringProcessEngineConfiguration config;
@GetMapping("/startProcess")
public String startProcess() {
config.setHistoryLevel(HistoryLevel.NONE);
RuntimeService runtimeService = config.getRuntimeService();
runtimeService.startProcessInstanceByKey("testing_DeletingHistory", "start");谢谢,e.g78。你的回答对我很有帮助,只做了很少的修改。
https://stackoverflow.com/questions/54409969
复制相似问题