Foxtable(狐表)用户栏目专家坐堂 → [求助]流程审批并发处理


  共有6034人关注过本帖树形打印复制链接

主题:[求助]流程审批并发处理

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/24 22:40:00 [显示全部帖子]

流程和多线程没有什么直接的关系。流程无非就是更新状态,再多也就是写入一些意见之类的数据。

如果一个流程需要A审批才能B审批,那么B在审批的时候判断A是否已经审批即可,至于B是在主线程做审批还是在多线程里作审批对流程完全没有影响。

如果是a和b不分先后,随时谁都可以审批,这要看表结构设计了,如果多人审批数据都在同一行,大家同时写数据会有锁,但是如果是一行一行处理的也很快。

如果是有专门的审批表,每人审批就添加一行数据,这种就根本不会互相影响了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/25 13:35:00 [显示全部帖子]

ABC三个人的做自己的审核好了,“总经理批准”只需要判断ABC是否都审批通过了就行,和同步还是异步有什么关系?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/25 16:12:00 [显示全部帖子]

不理解。审核不就保存数据到数据库么?只需要查数据库是否有对应的审核数据即可

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/25 16:37:00 [显示全部帖子]

说了半天,客户端审核不是直接写数据库?而是就发了个消息给服务端?

消息处理确实是需要排队的,这种情况只能把接收的客户端审核数据保存到数据库里,然后在调用异步函数里通过查询数据库的时候数据是否完整来决定下一步

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/25 17:02:00 [显示全部帖子]

还是通过写数据库,然后查询数据库数据判断吧

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/25 17:14:00 [显示全部帖子]

这是流程设计问题,和异步没有什么关系。

K打回U,如果其它环节需要重审,那么就同时把其它环节之前的审核撤销

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/25 17:37:00 [显示全部帖子]

do while dic.Keys.count > 0
dim x As String = dic.Keys(0)
    Dim lst As List(of String) = dic(x)
    Functions.AsyncExecute("执行判断",x,lst)  '这里定义一个函数来判断下一步是否能执行等等
    dic.Remove(x)  ''' 好象这样是不行的,不能在遍历字典的时候清除键
loop

 回到顶部