searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享

在linux中实现高并发的一种方式

2023-05-23 06:36:03
20
0

默认的情况下,Shell脚本中的命令是串行执行的,必须等到前一条命令执行完后才执行接下来的命令,但是如果我有一大批的的命令需要执行,而且互相又没有影响的情况下(有影响的话就比较复杂了),那么就要使用命令的并发执行了。

举一个例子,如下

for循环文件夹下的文件,并作一个导入任务,文件下边可能又很多文件,如果一个一个去执行,会非常耗费时间,所以我们考虑使用并发,批量执行导入。

我们在执行体加入了“&”号,这样循环体中的内容就可以并行执行了,原理就是放入后台去执行,多个任务放入后台,现在我们设想,我们导入完成之后就需要验证数据是否正常,但是进入后台执行之后无法感知到,会直接执行查看表的sql,此时会查不到,不符合我们的程序

因此又做了如上修改,加入的wait之后就可以达到我的预期效果了,wait的作用就是等待子任务都执行完之后在结束父任务,继而执行下面的任务。但是又有新的问题,文件目录下很多文件,一口气都放到后台,系统超出负载后,会有性能变差或者宕机风险,因此我们需要一个控制并发数的机制。因此引入并发数的概念,控制并发数

0条评论
0 / 1000
李****帅
3文章数
0粉丝数
李****帅
3 文章 | 0 粉丝
李****帅
3文章数
0粉丝数
李****帅
3 文章 | 0 粉丝

在linux中实现高并发的一种方式

2023-05-23 06:36:03
20
0

默认的情况下,Shell脚本中的命令是串行执行的,必须等到前一条命令执行完后才执行接下来的命令,但是如果我有一大批的的命令需要执行,而且互相又没有影响的情况下(有影响的话就比较复杂了),那么就要使用命令的并发执行了。

举一个例子,如下

for循环文件夹下的文件,并作一个导入任务,文件下边可能又很多文件,如果一个一个去执行,会非常耗费时间,所以我们考虑使用并发,批量执行导入。

我们在执行体加入了“&”号,这样循环体中的内容就可以并行执行了,原理就是放入后台去执行,多个任务放入后台,现在我们设想,我们导入完成之后就需要验证数据是否正常,但是进入后台执行之后无法感知到,会直接执行查看表的sql,此时会查不到,不符合我们的程序

因此又做了如上修改,加入的wait之后就可以达到我的预期效果了,wait的作用就是等待子任务都执行完之后在结束父任务,继而执行下面的任务。但是又有新的问题,文件目录下很多文件,一口气都放到后台,系统超出负载后,会有性能变差或者宕机风险,因此我们需要一个控制并发数的机制。因此引入并发数的概念,控制并发数

文章来自个人专栏
shell开发
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0