Giter VIP home page Giter VIP logo

Comments (7)

longsebo avatar longsebo commented on August 16, 2024

我是单独给它配数据源的
@DaTa
@configuration
public class FlowableEngineConfig implements EngineConfigurationConfigurer {
/**
* jdbc 驱动类
/
@value("${spring.datasource.driver-class-name}")
private String jdbcDriver;
/
*
* jdbc url
/
@value("${spring.datasource.url}")
private String jdbcUrl;
/
*
* jdbc 用户名
/
@value("${spring.datasource.username}")
private String jdbcUsername;
/
*
* jdbc 密码
*/
@value("${spring.datasource.password}")
private String jdbcPassword;
。。。
@OverRide
public void configure(SpringProcessEngineConfiguration engineConfiguration) {
engineConfiguration.setActivityFontName("宋体");
engineConfiguration.setLabelFontName("宋体");
engineConfiguration.setAnnotationFontName("宋体");
engineConfiguration.setJdbcDriver(this.jdbcDriver);
engineConfiguration.setJdbcUrl(this.jdbcUrl);
engineConfiguration.setJdbcUsername(this.jdbcUsername);
engineConfiguration.setJdbcPassword(this.jdbcPassword);
engineConfiguration.setDatabaseSchemaUpdate(this.databaseSchemaUpdate);
engineConfiguration.setAsyncExecutorActivate(this.asyncExecutorActivate);
}
。。。

from flowable-engine.

ruixule avatar ruixule commented on August 16, 2024

我是单独给它配数据源的 @DaTa @configuration public class FlowableEngineConfig implements EngineConfigurationConfigurer { /** * jdbc 驱动类 / @value("${spring.datasource.driver-class-name}") private String jdbcDriver; /* * jdbc url / @value("${spring.datasource.url}") private String jdbcUrl; /* * jdbc 用户名 / @value("${spring.datasource.username}") private String jdbcUsername; /* * jdbc 密码 */ @value("${spring.datasource.password}") private String jdbcPassword; 。。。 @OverRide public void configure(SpringProcessEngineConfiguration engineConfiguration) { engineConfiguration.setActivityFontName("宋体"); engineConfiguration.setLabelFontName("宋体"); engineConfiguration.setAnnotationFontName("宋体"); engineConfiguration.setJdbcDriver(this.jdbcDriver); engineConfiguration.setJdbcUrl(this.jdbcUrl); engineConfiguration.setJdbcUsername(this.jdbcUsername); engineConfiguration.setJdbcPassword(this.jdbcPassword); engineConfiguration.setDatabaseSchemaUpdate(this.databaseSchemaUpdate); engineConfiguration.setAsyncExecutorActivate(this.asyncExecutorActivate); } 。。。

你这边是整合的flowable-spring-boot-starter 还是只是engine呢

from flowable-engine.

ruixule avatar ruixule commented on August 16, 2024

我是单独给它配数据源的 @DaTa @configuration public class FlowableEngineConfig implements EngineConfigurationConfigurer { /** * jdbc 驱动类 / @value("${spring.datasource.driver-class-name}") private String jdbcDriver; /* * jdbc url / @value("${spring.datasource.url}") private String jdbcUrl; /* * jdbc 用户名 / @value("${spring.datasource.username}") private String jdbcUsername; /* * jdbc 密码 */ @value("${spring.datasource.password}") private String jdbcPassword; 。。。 @OverRide public void configure(SpringProcessEngineConfiguration engineConfiguration) { engineConfiguration.setActivityFontName("宋体"); engineConfiguration.setLabelFontName("宋体"); engineConfiguration.setAnnotationFontName("宋体"); engineConfiguration.setJdbcDriver(this.jdbcDriver); engineConfiguration.setJdbcUrl(this.jdbcUrl); engineConfiguration.setJdbcUsername(this.jdbcUsername); engineConfiguration.setJdbcPassword(this.jdbcPassword); engineConfiguration.setDatabaseSchemaUpdate(this.databaseSchemaUpdate); engineConfiguration.setAsyncExecutorActivate(this.asyncExecutorActivate); } 。。。

还有就是请问下,你是如何处理 业务库和flowable数据库 的事务管理的?一起会滚或者一起提交的呢

from flowable-engine.

Luusa1988 avatar Luusa1988 commented on August 16, 2024

兄弟,问题解决了吗?切换+事务

from flowable-engine.

fangweilovelife avatar fangweilovelife commented on August 16, 2024

整合的flowable-spring-boot-starter,我用的切面解决的数据源问题

from flowable-engine.

fangweilovelife avatar fangweilovelife commented on August 16, 2024

package xxxx.flowable.config;

import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
import lombok.extern.slf4j.Slf4j;
import org.flowable.common.engine.impl.AbstractEngineConfiguration;
import org.flowable.common.engine.impl.EngineConfigurator;
import org.flowable.engine.ProcessEngine;
import org.flowable.eventregistry.spring.configurator.SpringEventRegistryConfigurator;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;

@slf4j
@configuration
public class FlowableConfig {

@Autowired
private DynamicRoutingDataSource dynamicRoutingDataSource;
@Bean
public EngineConfigurator customEngineConfigurator() {
    return new EngineConfigurator() {
        @Override
        public void beforeInit(AbstractEngineConfiguration engineConfiguration) {
            DataSource dataSource = dynamicRoutingDataSource.getDataSource("flowable");
            engineConfiguration.setDataSource(dataSource);

        }


        @Override
        public int getPriority() {
            // 返回的值越小,优先级越高。这里返回0,表示最高优先级。
            return 0;
        }

        @Override
        public void configure(AbstractEngineConfiguration processEngineConfiguration) {
            // 在这里添加你的自定义配置逻辑
            // 例如,可以设置自定义的表单类型解析器或自定义的脚本任务执行器

            System.out.println("Custom Engine Configurator with highest priority is being applied.");
        }
    };
}

@Bean
public SpringEventRegistryConfigurator customEventEngineConfigurator() {
    return new SpringEventRegistryConfigurator() {
        @Override
        public void beforeInit(AbstractEngineConfiguration engineConfiguration) {
            DataSource dataSource = dynamicRoutingDataSource.getDataSource("tenant");
            engineConfiguration.setDataSource(dataSource);

        }


        @Override
        public int getPriority() {
            // 返回的值越小,优先级越高。这里返回0,表示最高优先级。
            return 0;
        }

        @Override
        public void configure(AbstractEngineConfiguration processEngineConfiguration) {
            // 在这里添加你的自定义配置逻辑
            System.out.println("Custom Engine Configurator with highest priority is being applied.");
        }
    };
}
@Bean
public ProcessEngine processEngine(SpringProcessEngineConfiguration configuration) {
    // 将自定义的EngineConfigurator添加到SpringProcessEngineConfiguration
    configuration.getProcessEngineConfiguration().addConfigurator(customEngineConfigurator());
    configuration.getProcessEngineConfiguration().addConfigurator(customEventEngineConfigurator());
    // 构建并返回流程引擎
    return configuration.buildProcessEngine();
}

}

from flowable-engine.

fangweilovelife avatar fangweilovelife commented on August 16, 2024

整合的flowable-spring-boot-starter,我用的切面解决的数据源问题

package xxx.flowable.config;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;

/**

  • 切面方式

  • flowable:6.8.0,spring boot v2.2.2.RELEASE
    */
    @slf4j
    @component
    @aspect
    public class DbAspect {

    @pointcut("execution(* org.flowable.app.engine.AppEngineConfiguration.buildAppEngine())")
    public void buildEngine() {}

    @pointcut("execution(* org.flowable.eventregistry.spring.SpringEventRegistryEngineConfiguration.start())")
    public void startRegistry() {}

    @around("buildEngine()")
    public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    log.info("初始化flowable-engine之前切换到工作流数据源");
    DynamicDataSourceContextHolder.push("flowable");
    Object result = proceedingJoinPoint.proceed();
    log.info("初始化flowable-engine之后停用工作流数据源");
    DynamicDataSourceContextHolder.poll();
    return result;
    }
    @around("startRegistry()")
    public Object doAroundStartRegistry(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
    log.info("初始化flowable-event-registry之前切换到工作流数据源");
    DynamicDataSourceContextHolder.push("flowable");
    Object result = proceedingJoinPoint.proceed();
    log.info("初始化flowable-event-registry之后停用工作流数据源");
    DynamicDataSourceContextHolder.poll();
    return result;
    }
    }

from flowable-engine.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.