Foxtable(狐表)用户栏目专家坐堂 → [求助]异步函数


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

主题:[求助]异步函数

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]异步函数  发帖心情 Post By:2020/8/23 20:54:00 [只看该作者]

现在有一个需求。
一个系统,多个分店要使用。
假设有5项业务,10个分店都有各自的数据需要流程审批(审批流程有点小复杂,有串行嵌套并行的,还可能多级嵌套,但同一个业务只会有一个流程ID)
现在各个分店的各项业务都有数据要走审批流程的时候,如果在服务器一个个排队处理,有些情况下,可能效率就有点影响了。

异步函数貌似可以解决这个问题。也就是按分店、按业务排队,也就是说,同一个分店、同一项业务,按业务行排队就合适了。也就是说,同一个分店、同一项业务,某一行的流程审批才需要排队(例如这一行要走多人并联审批的时候,客户端的甲乙丙同时提交,则排队处理;如果是不同的分店,即使是同一种业务要处理,也可以同时处理 )

如果同一个业务的同一行有并行的时候,不排队处理,就得再用同步函数整一次,来判断并行的处理是否都完成了以确定是否要走到下一步,那还不如排队处理方便

看了一下帮助里的异步函数,但没有说按某一个条件做异步处理 
这个思路应当怎么整呢
[此贴子已经被作者于2020/8/23 21:16:26编辑过]

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/23 21:19:00 [只看该作者]

流程审批不都是判断上一步执行完毕在执行下一步的么,这个其实和是否异步处理没有什么关系吧。可以全部都改为异步处理。

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/8/24 14:10:00 [只看该作者]

如果都是串行就没这事了。假定某业务某环节需要ABC三个环节并行,A环节甲乙仼何一个人审都行,B环节丙丁任何一个审都行,C环节戊己仼何一个审都行。如果不排队并行,因为要判断任何其它两个的状态,都审了才会走下一步。我担心因为数据处理、读取的时间差在极端状况下会在在那不动了

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/24 14:12:00 [只看该作者]

怎么样是极端状况,举例说明一下。查询要么符合结果,要么不符合结果。符合就继续,不符合句返回

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/8/24 14:12:00 [只看该作者]

甲读BC状态时都没完成,于是不往下走。在家确定不走的时候,BC又完成了,是不是就不动了

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/24 14:19:00 [只看该作者]

这不很正常的情况吗?这次打不到车肯定要等下一辆车啊!这次没有完成,下次重新查询咯。或者主动通知,在B(C)完成的时候查询C(B)是否也完成了,然后通知甲。这个应该是自己处理业务的逻辑问题吧。

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/8/24 14:29:00 [只看该作者]

所以还是有一个同步函数在处理它嘛,任何一个人提交,都由同步函数去检查是否三个都完成。所以先异步再回同步函数啊。

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


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/24 14:36:00 [只看该作者]

用到Table、Datatable,窗口及窗口控件这些才需要使用异步函数啊:http://www.foxtable.com/mobilehelp/topics/277.htm

如果是直接查数据库数据的,直接在同一个函数里查询不就行了。

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


加好友 发短信
等级:九尾狐 帖子:2216 积分:18225 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/8/24 14:47:00 [只看该作者]

现在的流程考虑的因素比较多,包括业务条件、串并联嵌套,测试了一下,一个完整的流程判断差不多1秒钟(跟我的水平有关,应该优化空间很大),这1秒钟够干好多事了

 回到顶部