需求:定时数据库表单
一般这种任务都是需要分成两个动作流去做的,第一个动作流任务需要计算这个数据库表里面共有多少条数据并且需要对数据进行分页,因为E10对数据库操作是有限制的一次只能更新一千条数据,第二个动作流任务根据分页来更新表的数据。
第一个动作流的完整示意图如下

拿我这个例子来说,这是一个定时任务,定时去更新数据库表单的数据
配置如下:
第一个任务,简单定时器定时执行任务

第二个任务,DML操作,用sql来查询数据库共有多少条数据


第三个任务,变量赋值,需要新建一个变量将DML统计到的总数进行初步分页,并将页数保存下来

通过函数计算总的分页数,这里我用的是对数据500条进行一次分页

第四个任务,循环,通过第三个任务的变量将页数对外广播

用内置MQ操作通过广播模式对外发送页数,队列名称需要做到唯一

自定义对外发送参数page

通过加法函数将每次结果加1

以上就是第一个动作流的全部操作
第二个动作流,接收第一个动作流发送的页数并对数据库表单进行更新
完整示意图如下:

第一个任务,内置MQ监听,用来监听第一个动作流发送的页数,这里队列名称就是刚第一个动作流MQ发送的队列名称

接收参数,需要保持和第一个动作流发送出来的一样

第二个任务,变量赋值,新建偏移量变量,并通过接收的page动态赋值

用减法和乘法函数进行动态赋值,我是500条数据进行分页的所以这里就乘500

第三个任务,DML操作,将变量值赋值到sql中

用插入占位符的方式进行插入,字段类型需要确保为数字

对刚插入的pyl进行赋值

第四个任务,循环,根据结果集来批量更新数据


这里我是通过结果集的字段来更新数据库表单

也是通过占位符的方法

赋值的话就用循环的值

总结
以上就是两个动作流的基本配置
第一个动作流对外定时发送页数,第二个动作流来监听第一个动作流发送的参数并且对数据库表单进行更新,这样一个简单的定时更新数据库表单的定时任务就处理好了