Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在spring activiti中禁用历史记录_Spring_Spring Boot_Activiti - Fatal编程技术网

如何在spring activiti中禁用历史记录

如何在spring activiti中禁用历史记录,spring,spring-boot,activiti,Spring,Spring Boot,Activiti,我将Activiti与spring boot一起使用,在从Activiti表获取数据时,我几乎没有遇到性能问题。我想这是由于历史记录表造成的 当我从activiti表查询数据时,在第一个场景中,需要0.239秒才能获得结果,但在第二个场景中,需要1.884秒才能从数据库中获取数据 这是主要原因,我想禁用历史记录 技术堆栈: 春季活动-5.22.0 Spring启动版本-1.5.8.0版本 甲虫性粘膜炎 请告诉我,是否有任何配置可以禁用历史记录,如果禁用历史记录,将会出现任何问题。您可以通过在@

我将Activiti与spring boot一起使用,在从Activiti表获取数据时,我几乎没有遇到性能问题。我想这是由于历史记录表造成的

当我从activiti表查询数据时,在第一个场景中,需要0.239秒才能获得结果,但在第二个场景中,需要1.884秒才能从数据库中获取数据

这是主要原因,我想禁用历史记录

技术堆栈:

春季活动-5.22.0

Spring启动版本-1.5.8.0版本

甲虫性粘膜炎


请告诉我,是否有任何配置可以禁用历史记录,如果禁用历史记录,将会出现任何问题。

您可以通过在@configuration类中设置ProcessEngineConfiguration的history属性来禁用历史记录

@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();
    }
}
如果将历史设置为“无”,则不会有问题,但也不会有关于过去活动的信息

您可以设置的级别有:无、活动、审核、完整。 以下是详细信息:

请看这里:

您可以尝试:

spring.activiti.historyLevel=none
在application.properties文件中。
希望这有帮助。

我们可以通过将历史记录级别保持为“无”来停止历史记录。但这里的重点是在哪里设定历史水平。使用@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。您的回答对我很有帮助,只做了一些修改。

我试过了,正如您所说,我在springboot配置类中粘贴了下面的代码。例如:@Bean public ProcessEngineConfigurationImpl getProcessEngineConfiguration(){SpringProcessEngineConfiguration processEngineConf=new SpringProcessEngineConfiguration();processEngineConf.setHistory(HistoryLevel.NONE.getKey());返回processEngineConf;}但我仍然无法阻止历史进入表格。有什么我可以修改的吗。你能发布整个配置类吗?我编辑了我的帖子并添加了我的整个配置类谢谢你的帮助。实际上,我用不同的方式解决了这个问题。不知何故,当我在配置类中添加历史记录时,它并没有获取历史记录。因此,当我开始这个过程时,我在那里声明历史级别。这对我有用。你的回答真的帮了我很大的忙。我没有在Spring Boot中使用activiti,但遗憾的是,在activiti.cfg.xml中设置该参数是不够的