У меня есть сценарий, который многократно обрабатывает X-запросы каждые Y минут на один и тот же сервер и в настоящее время не использует конвейерную обработку/HTTP Keep-Alive, частично потому, что каждому запросу предшествуют по заголовку на выходе.Оберните петлю, чтобы использовать HTTP-конвейерную обработку
#!/bin/sh -x
for k in $(jot 6)
do
while read i
do
echo -n $i
curl -s "http://example.org/?param=$i" | fgrep result
done <<EOF
some
uri
data
here
EOF
sleep 600
done
То, что я хочу, чтобы преобразовать это использовать одно подключение к example.com
для каждой партии, вместо того, чтобы установить новый для каждого запроса.
Обратите внимание, что конвейерная обработка осложняется тем фактом, что заголовок должен быть напечатан, например. echo -n $i
.
Ограничение: может быть ноль или один линия от каждого запроса, который будет соответствовать строке, которую мы пытаемся fgrep
(так, настоящий сценарий также частично нарушен, так как он не будет печатать \n
если также являются 0 линиями).
Я идеально ищу решение sh
, но у меня есть perl
и python2.7
, если это не займет слишком много времени. (Так же, как и curl
wget
, а также все другие вещи, которые OpenBSD есть.)
hm, я предполагаю, что я просто имел в виду постоянное сохранение жизни, а не конвейерную обработку. – cnst