linux系统实现DataX任务进程多并发以及自定义并发数

下面是我之前用datax任务多并发数据上云时写的shell脚本(已进行精简),注释比较详尽

运行方式 ./ty_commit_task_to.sh 10     其中10代表并发任务量,可根据自身服务器的CPU等配置进行合理输入数值

大家有需要进行其他并发进程时也可采用这个模板

#!/bin/bash
################################################################################
# 脚本名称       : ty_commit_task_to.sh 并发提交表json的datax任务
#
# 创建日期       : 2019/11/27
# 作者           : mochou
#
# 描述           : 提交datax任务上云-数据库增量数据
# 参数描述       : 1 并发数 processNum
#
# 修改记录      :
#
#    日期    操作           操作人员                      描述		
# ________  _______   __________________    __________________________________
#
# 2019/11/27  创建    mochou   
################################################################################

if [ $# -lt 1 ] ; then
   echo  "please input right parameters"
   exit 1;
fi
processNum=$1
## base path
basePath="/u01/work"
jsonNum=`ls ${basePath}/*.json | wc -l`

if [ ${processNum} -gt ${jsonNum} ] ;then
	echo "must less than json_nums :${jsonNum}"
	exit 1;
fi

# named by cur_fifo
fifoName="/tmp/$$.fifo"
mkfifo ${fifoName}
# define file ,default 3
exec 3<>"${fifoName}"
# save fd is ok
rm -rf ${fifoName}
# define numbers 
for ((i=1;i<=${processNum};i++)) do
	echo >&3
done

for file in `ls ${basePath}/*.json` ;do
	# read null
	read -u3
	{
		# run json task
		python datax.py --jvm="-Xms4g -Xmx4g" ${file} 2>&1 >> ${file}.log
		result=$?
		if [ ${result} -eq 0 ] ;then
			echo "succ" 
		else
			echo "fail"
		fi
		sleep 1
		# write null end 
		echo >&3
	}&
done

# close read
exec 3<&-
# close write
exec 3>&-

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神芷迦蓝寺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值