监控 redis 队列RPOP拉取远程AU文件 转码 WAV
这个脚本并不通用 业务介绍:
1. 用户注册上传语音文件前端回传Au静态资源回调文件地址;
2. 回调地址上传后打入 `upload:au:queue` 队列. 写入mysql的数据默认为转码成功的地址;
3. shell 脚本读取队列拉取文件并生成转码文件
AuToWav.sh
#/user/bin
host="127.0.0.1"
port=6379
redis_key="upload:au:queue"
redis_cli="/usr/local/redis/bin/redis-cli"
error_log="./transfer_error.log"
suffix_name="wav"
auPath="./au/"
transferAu="./transferAu"
if [ ! -f $transferAu ]; then
echo "转码脚本不存在"
exit 1
fi
if [ ! -d $auPath ]; then
mkdir -p $auPath
fi
while true
do
url=$($redis_cli -h $host -p $port rpop $redis_key)
if [ ! -n "$url" ]; then
sleep 1
continue
fi
wget -o ./download.log $url
au_file_list=$(ls *.au)
if [ ! -n "$au_file_list" ]; then
echo "IS NULL"
continue
fi
for x in $au_file_list
do
tmp_file_name=${x%.au*}
$($transferAu $x &>> $error_log)
if [ ! -f "$tmp_file_name.$suffix_name" ]; then
echo $x"生成文件失败"
continue
fi
mv $x $auPath
done
done
nohup ./AuToWav.sh 2>> error.log &