nixp.ru v3.0

5 октября 2024,
суббота,
00:00:02 MSK

Миша написал 22 октября 2017 года в 22:48 (1823 просмотра) Ведет себя неопределенно; открыл 8 тем в форуме, оставил 7 комментариев на сайте.

В общем есть у меня такой скрипт:

<?php
echo "Before sleep1<br>\n";
flush();
sleep(5);
echo "After sleep<br>\n";
?>


я обращабсь к нему через консоль

curl http://localhost/upload.php


вижу, что приходит первая строка Before sleep1, а через 5 сек вторая строка After sleep. Таким образом я проверяю, что отключена буферизация. В общем хотел сделать тестик на python. Но

urllib2.urlopen('http://localhost/upload.php')


и прочие аналоги не помогают мне в этом деле. В фоновом режиме смотреть ежесекундно что приходит по запросу нельзя. В конце мне выдает обе строки и я таким образом не могу понять отключена буферизация или нет. Мне надо четко понимать что между 1 и 2 строкой была разница в несколько скунд (в смысле, что эти строки приходят с разницей в 5 сек). В идеале надо получать временную метку при получении каждой строки и сравнивать их. Но я сколько не рылся — ничего такого сделать не смог. Хоть убей выдает в конце 2 строки, когда отрабатывает запрос. Можно ли как-то получать временную метку (скажем за каждую секунду) что приходит ко мне по запросу? Или попросту надо искать другой способ проверять отключение буферизации?

Дмитрий Шурупов

Сам не пробовал, но тут в верхнем комментарии решение похожей проблемы описывается. Из комментария автора:

w.write() gets called by libcurl as soon as there is data received that needs to be saved. It can be 1 byte, it can be 100KB. Inside this function you can aggregate/slice it to get your chunks (whatever chunk means). I’ve added sys.stderr.write(data) that you can see the data as it arrives.

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.