Foxtable(狐表)用户栏目专家坐堂 → 关于异步函数列队执行的问题


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

主题:关于异步函数列队执行的问题

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


加好友 发短信
等级:童狐 帖子:266 积分:3646 威望:0 精华:0 注册:2012/5/25 15:31:00
关于异步函数列队执行的问题  发帖心情 Post By:2024/5/19 9:17:00 [显示全部帖子]

请问各位大佬,有一个资料生成项目,客户填好信息后提交在服务器上生成好打印资料并提供下载,现在有一个问题就是不使用异步的话,生成资料时就会让服务器卡死,但使用异步又不进行排队执行就会出错。现在我用的是一个低级方法,代码如下:

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
以上代码也能解决问题,但感觉会出问题。

我想问的是有没有一种方法可以为生成资料单开一个子线程,然后有客户提交信息后在这个子线程里进行排队生成,这样就不会让服务器卡死了,生成资料也不会出错了。

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


加好友 发短信
等级:童狐 帖子:266 积分:3646 威望:0 精华:0 注册:2012/5/25 15:31:00
  发帖心情 Post By:2024/5/20 21:07:00 [显示全部帖子]

就是用EXCEL模板和WORD模板生成资料,上面的其他代码就是EXCEL模板和WORD模板的生成代码,没有什么特别的地方。如果用异步函数AsyncExecute生成在生成的时候就会出错,如果不改任何代码变成Execute生成就不会出错。
我主要想要的是有没有一种方法可以为生成资料单开一个子线程,然后有客户提交信息后在这个子线程里进行排队生成,这样就不会让服务端狐表卡死了,生成资料也不会出错了。
或者其他方式实现不阻塞主线程进行EXCEL模板和WORD模板的生成。当然不用排队可以同时进行EXCEL模板和WORD模板的生成又不影响主线程就是最好的图片点击可在新窗口打开查看
我上面的代码就是用异步函数AsyncExecute生成的,用的方法就是不断查询是否有一条数据正在生成资料,如果有就暂停子线程10秒循环100次。我想问问有没有更好方法实现这个功能。
[此贴子已经被作者于2024/5/20 21:24:08编辑过]

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


加好友 发短信
等级:童狐 帖子:266 积分:3646 威望:0 精华:0 注册:2012/5/25 15:31:00
  发帖心情 Post By:2024/5/21 11:50:00 [显示全部帖子]

蓝版,再问下生成WORD模板和excel模板的代码在同一时间有10次用异步方式调用(不考试代码问题),能不能正常用模板生成文件?我想确定方向对不对。
[此贴子已经被作者于2024/5/21 11:55:21编辑过]

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


加好友 发短信
等级:童狐 帖子:266 积分:3646 威望:0 精华:0 注册:2012/5/25 15:31:00
  发帖心情 Post By:2024/5/21 12:48:00 [显示全部帖子]

我测试过同一时间多次异步调用生成函数要出错,所以又回到第一条贴子上的问题了,有没有办法让子线程进行排队?我上面代码是用的暂停子线程的方法,解决同一时间多次异步调用生成函数的问题,但总觉得会出问题,所以问问有没有更好的办法解决子线程排队执行的方法。
[此贴子已经被作者于2024/5/21 12:48:29编辑过]

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


加好友 发短信
等级:童狐 帖子:266 积分:3646 威望:0 精华:0 注册:2012/5/25 15:31:00
  发帖心情 Post By:2024/5/25 10:06:00 [显示全部帖子]

谢谢蓝版,用此方法确实解决了问题。

 回到顶部