如何加快此卷曲脚本并更快地响应

时间:2018-02-08 02:26:12

标签: linux multithreading bash performance curl

我确实有这个脚本来获取一些变量命中服务器。关键是这样做很慢,我必须运行多次相同的脚本才能获得合适的请求率。如何将此线程数与这个curl脚本相乘而无需运行4或5次?

此外,我想让它更快更好地执行,这是原创的

    while ! grep "TokenException" output.txt > /dev/null
do
echo -e '\n'$(date +%x_%H:%M:%S:%3N) > output.txt
curl -s -H 'Host: host.com' -H "Cookie: session-token="$SESSION\" -H "x-amz-access-token: $token" -H "x-flex-instance-id: $flex" -H 'Accept: */*' -H 'User-Agent: Dalvik/2.1.0 (Linux; U; Android 7.1.1; Nexus 5X Build/N4F26T) RabbitAndroid/3.0.6778.0' -H 'Accept-Language: en-us' --compressed 'https://hostname.com/GetOffersForProvider?serviceAreaIds=16' >> output.txt
if grep -q "OFFERED" output.txt; then
    cat output.txt >> foundb.txt

      ./getlast.bat

    if [ ! -f pageflag.txt ]; then
         /usr/bin/php alert.php
        echo "paged" > pageflag.txt
    fi
sleep 0.05
fi
done

我修改为

while ! grep "TokenException" output.txt > /dev/null
do
echo -e '\n'$(date +%x_%H:%M:%S:%3N) > output.txt
curl -s -H 'Host: host.com' -H "Cookie: session-token="$SESSION\" -H "x-amz-access-token: $token" -H "x-flex-instance-id: $flex" -H 'Accept: */*' -H 'User-Agent: Dalvik/2.1.0 (Linux; U; Android 7.1.1; Nexus 5X Build/N4F26T) RabbitAndroid/3.0.6778.0' -H 'Accept-Language: en-us' --compressed 'https://hostname.com/GetOffersForProvider?serviceAreaIds=16' >> output.txt
if grep -q "OFFERED" output.txt; then
    cat output.txt >> foundb.txt

  ./getlast.bat

         /usr/bin/php alert.php
sleep 0.05
fi
done

有些建议可以在多线程上运行,甚至在睡眠或其他方式暂停几毫秒的情况下更快?主要的一点是它应该尽可能快地执行./getlast.bat和从curl中捕获的变量,但它在数据和getlast.bat之间的时间差执行2秒,太多了

1 个答案:

答案 0 :(得分:0)

curl本身不支持多个连接/线程和/或恢复取消/停止的操作。

使用aria2或类似的东西。