Camunda SpringBoot 4 发布流程
引入依赖1implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest:7.17.0'
运行SpringBoot项目。
保存创建的流程图,点击发布按钮。REST point:http:ip:port/engine-rest,就是流程要部署的项目地址,Camunda会自动部署此流程。
进入Camunda Web端,进入Cockpit中查看。
启动流程进入Tasklist,点击Start process。完成后刷新页面,点击Complete按钮,至此流程审批完成。
Camunda SpringBoot 3 创建一个简单流程
下载Modeler首先下载Camunda Modeler,选择自己的操作系统对应的安装包。创建一个画布。然后添加一个用户任务。选中开始节点点击任务。然后给一个审批人,审批人需要Camunda的用户表中存在的用户。最后添加结束节点。至此流程创建结束。
Camunda SpringBoot 2 双数据源
使用Camunda配置双数据源不是必须的,因为Camunda表的命名方式和自己的方式有区别,而且放在一起显得比较乱,所以将Camunda的表单独存放。
首先多数据源配置
12345678910111213141516spring: datasource: # 主数据源配置 primary: # 我这用了P6spy,如果你本地没用需要替换成你自己的驱动 driver-class-name: com.p6spy.engine.spy.P6SpyDriver # 协议也需要换 url: jdbc:p6spy:mariadb://192.168.10.65:3306/am_server?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&zeroDateTimeBeh ...
Camunda SpringBoot 1 起步
引入依赖1implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp:7.17.0'
这个依赖同时会引入一个Web端的管理界面,如果不需要只需要引入
1implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter:7.17.0'
添加配置123456789101112131415camunda: bpm: database: # 数据库类型可以不加 type: mariadb # 关闭批量处理 jdbc-batch-processing: false # 默认用户配置 admin-user: # 用户名 id: admin password: 123456 firstName: Demo filter: create: All tasks
其他 ...
Web端实时显示服务器日志
前言最近看了一个项目,有一个实时打印服务器日志的功能,但是他这个实现方法是不断的轮训服务器,请求日志然后显示到页面上。我觉得这种方法不是那么好,觉得还是用WebSocket推送的方式比较不错,所以实现一个服务器端推送日志的功能。
准备因为后端使用Logback打印日志,所以看了一下Logback 的文档,他有一些自己实现的推送日志的功能,但是都是通过Socket实时推送到一个专门的日志服务器上,和我的想法有点区别。如果有需要可以看看文档中的Receivers 章节或者Appenders 章节。
实现1、 配置WebSocket(自行配置)
2、 实现自己的Appender
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051import ch.qos.logback.classic.Level;import ch.qos.logback.classic.spi.ILoggingEvent;import ch.qos.logback.core.Append ...
HashMap优化
前言今天接到领导通知,然我优化一个导出Excel功能,这个功能在线上4万多条数据大概用了65分钟倒完。
捋顺代码看一下代码是怎么写的。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879public class ExportService{ public Workbook export() { /* 创建表格表头 */ // 在数据库中查询数据,大概在两三秒内完成,数量6W+ List<Data> list = getData(); // 创建一个Map,Key是一个对象,Value是一个List,没太太理解为什么这么用 Map<TargetObject, ArrayList<String>> dataMap = ...
LeetCode之两数之和
1、两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:
给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum
1、暴力解暴力解,没什么说的,两层循环,每两个数相加判断是否等于target。
12345678910111213public static int[] twoSum1(int[] nums, int target) { int[] result = new int[2]; for (int i = 0; i < nums.length - 1; i++) { for (int j = i + 1; j < nums.length; j++ ...
延时对列
最近做一个小小小小商城,有一个需求就是需要在订单24小时内未付款将订单取消的需求,本来想着弄个定时任务随便搞一搞就完事了,但是本着以用户体验至上的原则,还是好好做吧。
在Java的并发包里有一个java.util.concurrent.DelayQueue,要用这个队列必须要有一个类实现java.util.concurrent.Delayed接口。
12345678910111213141516171819202122232425262728@Datapublic class OrderCancelDelayedImpl implements Delayed { public OrderCancelDelayedImpl(Long id, LocalDate executeTime) { this.id = id; this.executeTime = executeTime; } private Long id; private LocalDateTime executeTime; @Overri ...