Уж сколько тут копий было переломано на тему хидеров - не подсчитать, а вопрос решился за неделю приложения рук.
Поддержка PHP скриптов
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Поддержка PHP скриптов
Да тебе просто памятник надо поставить. Нерукотворный.
Уж сколько тут копий было переломано на тему хидеров - не подсчитать, а вопрос решился за неделю приложения рук.
Уж сколько тут копий было переломано на тему хидеров - не подсчитать, а вопрос решился за неделю приложения рук.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Поддержка PHP скриптов
Не надо мне памятник, я ещё живой)
Но вот помощь со скриптом не помешает. Для случая, если сервер закрывает соединения, всё понятно и работает хорошо (запускаю параллельно 4 загрузки - нагрузка на проц. 0-3%), но вот в случае с кипаливом, даже 1 загрузка умудряецца загрузить проц на 30-50% (это, 2-х ядерник-то!).
Вот что я нагородил и что нагружает проц:
Очевидно, всё из-за неблокирующего режима работы сокета и считывании заголовков по одному байтику... но иначе не получается забрать ответ - соединение-то не разрывается и fgets висит до бесконечности
Но вот помощь со скриптом не помешает. Для случая, если сервер закрывает соединения, всё понятно и работает хорошо (запускаю параллельно 4 загрузки - нагрузка на проц. 0-3%), но вот в случае с кипаливом, даже 1 загрузка умудряецца загрузить проц на 30-50% (это, 2-х ядерник-то!).
Вот что я нагородил и что нагружает проц:
Код: Выделить всё
// отправляем запрос серверу
fputs($fp, $request);
while (!preg_match('/\\r\\n\\r\\n$/', $responseHeader)){
$responseHeader.= fread($fp, 1);
}
//парсим заголовки
$headers = http_parse_headers($responseHeader);
if ($debug) print_r($headers);
$MIMEType = $headers["Content-Type"];
$content_length = $headers['Content-Length'];
if ($debug) print $content_length."\r\n";
socket_set_blocking($fp, 0);
while (strlen($responseBody) != $content_length ){
$responseBody .= fgets($fp, $content_length);
usleep(100);
}Очевидно, всё из-за неблокирующего режима работы сокета и считывании заголовков по одному байтику... но иначе не получается забрать ответ - соединение-то не разрывается и fgets висит до бесконечности
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Поддержка PHP скриптов
SAS.Planet.110414.Php.Debug.rar
В комплекте одна карта и по-умолчанию она работает через php. Поскольку оптимального варианта скрипта с Keep-Alive методом пока нет, работает по-старинке c "Connection: Close".
В комплекте одна карта и по-умолчанию она работает через php. Поскольку оптимального варианта скрипта с Keep-Alive методом пока нет, работает по-старинке c "Connection: Close".
Re: Поддержка PHP скриптов
Не нашёл тему про Perl. Она была вообще?Parasite писал(а):Lua и Perl предлагались ровно для того же с год назад, сейчас очередь PHP. Скорее всего - с тем же результатом.
В итоге какие-то нерешаемые проблемы с PHP обнаружились, коли его нет, или просто традиционно выпилено и забыто?
Или это уже всё неактуально в связи с хедерами, постами и прочими куками в самом сасе?
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Поддержка PHP скриптов
Была. Инфа 146%vasketsov писал(а):Не нашёл тему про Perl. Она была вообще?Parasite писал(а):Lua и Perl предлагались ровно для того же с год назад, сейчас очередь PHP. Скорее всего - с тем же результатом.
Второе.vasketsov писал(а): В итоге какие-то нерешаемые проблемы с PHP обнаружились, коли его нет, или просто традиционно выпилено и забыто?
Наработки были и даже работали, но оно так и не пошло в основную ветку - скажем так.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/


Re: Поддержка PHP скриптов
А в принципе это насколько актуально (perl или php)?
Я в том плане, что хедеры, посты и прочие куки в самом сасе есть.
По идее остались ярко выраженные предфимозные извращения. Типа как я из скрипта всё скачанное сразу в БД кладу, а сасу возвращаю сгенерённую "пустышку".
Или для квазиобычных применений тоже чё-то не хватает?
Я в том плане, что хедеры, посты и прочие куки в самом сасе есть.
По идее остались ярко выраженные предфимозные извращения. Типа как я из скрипта всё скачанное сразу в БД кладу, а сасу возвращаю сгенерённую "пустышку".
Или для квазиобычных применений тоже чё-то не хватает?
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Поддержка PHP скриптов
Уже по-моему не актуально. Да и некоторые плюшки САСа вроде интерфейсов качалки и proj4 в php/perl будет затруднительно пробросить по-моему.vasketsov писал(а):А в принципе это насколько актуально (perl или php)?
Ну, периодически что-то всплывает - недавно тут где-то на форуме просили Base64 encoder/decoder в скриптах.vasketsov писал(а):Или для квазиобычных применений тоже чё-то не хватает?
-
Tolik
- Гуру
- Сообщения: 2604
- Зарегистрирован: 28 янв 2011, 10:38
- Благодарил (а): 283 раза
- Поблагодарили: 587 раз
Re: Поддержка PHP скриптов
По-моему, не актуально. PHP пытались прикрутить, и они даже как-то работали, но это было очень громоздко и глюкабельно.vasketsov писал(а):А в принципе это насколько актуально (perl или php)?
Потом появились хедеры и пр., и надобность отпала.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Поддержка PHP скриптов
Не так. Из-за того, что php не вошло в основную ветку, пришлось разработку забросить (так и не доведя до stable) и переключиться на допиливание паскаль-скриптов. И уже только потом, в них появились хидеры и ко.Tolik писал(а):Потом появились хедеры и пр., и надобность отпала.
- Parasite
- Администратор
- Сообщения: 5646
- Зарегистрирован: 23 окт 2008, 17:38
- Благодарил (а): 124 раза
- Поблагодарили: 508 раз
Re: Поддержка PHP скриптов
Вот именно что advanced functionality частенько и не хватает.vasketsov писал(а):А в принципе это насколько актуально (perl или php)?
Я в том плане, что хедеры, посты и прочие куки в самом сасе есть.
По идее остались ярко выраженные предфимозные извращения. Типа как я из скрипта всё скачанное сразу в БД кладу, а сасу возвращаю сгенерённую "пустышку".
Или для квазиобычных применений тоже чё-то не хватает?
Большинство юзаемых мною ресурсов юзаются мною через те или иные самоскреативленные проксики (в основном на перле - ибо php терпеть ненавижу). Часто проксики весьма сложны - например дешифрация данных или автоматическая поддержка\перебор логинов\ключиков и авторегистрация\автокапча при бане предыдущих, итд.
Если функционал того же перла в его полном виде* будет как-то совокуплен с сасом плотнее, чем через "бутылочное горлышко" http-запросов - то это будет весьма хорошо, и без ложной скромности - цены такой сборке не будет.
--
* - под полным функционалом подразумевается весь функционал доступный языку в системе (со всеми установленными в перла дополнительными CPAN-модулями и тд.) То есть, надо как-то звать того же перла с САСа, отдавать ему данные, а в ответ как-то получать выхлоп обратно в САС.
Если полные доступные в системе возможности языка ввести нет возможности\желания, и он может\будет как-то специально кастрирован (как это сейчас с паскальскриптом) - то наверное лучше и не трогать ничего. Смысла нет - проще продолжать быдлокодить свои быдлопроксики вот прямо сегодня и безо всяких кастраций языка\функционала.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/

