SASGIS

Веб-картография и навигация

Поддержка PHP скриптов

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Re: Поддержка PHP скриптов

Сообщение Parasite » 10 апр 2011, 14:22

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

Re: Поддержка PHP скриптов

Сообщение zed » 10 апр 2011, 15:32

Не надо мне памятник, я ещё живой)

Но вот помощь со скриптом не помешает. Для случая, если сервер закрывает соединения, всё понятно и работает хорошо (запускаю параллельно 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 скриптов

Сообщение zed » 14 апр 2011, 18:48

SAS.Planet.110414.Php.Debug.rar

В комплекте одна карта и по-умолчанию она работает через php. Поскольку оптимального варианта скрипта с Keep-Alive методом пока нет, работает по-старинке c "Connection: Close".
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Поддержка PHP скриптов

Сообщение vasketsov » 06 фев 2013, 11:00

Parasite писал(а):Lua и Perl предлагались ровно для того же с год назад, сейчас очередь PHP. Скорее всего - с тем же результатом. :)

Не нашёл тему про Perl. Она была вообще?

В итоге какие-то нерешаемые проблемы с PHP обнаружились, коли его нет, или просто традиционно выпилено и забыто?
Или это уже всё неактуально в связи с хедерами, постами и прочими куками в самом сасе?
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.

Re: Поддержка PHP скриптов

Сообщение Parasite » 06 фев 2013, 12:10

vasketsov писал(а):
Parasite писал(а):Lua и Perl предлагались ровно для того же с год назад, сейчас очередь PHP. Скорее всего - с тем же результатом. :)

Не нашёл тему про Perl. Она была вообще?

Была. Инфа 146%

vasketsov писал(а):В итоге какие-то нерешаемые проблемы с PHP обнаружились, коли его нет, или просто традиционно выпилено и забыто?

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

Re: Поддержка PHP скриптов

Сообщение vasketsov » 06 фев 2013, 12:56

А в принципе это насколько актуально (perl или php)?
Я в том плане, что хедеры, посты и прочие куки в самом сасе есть.
По идее остались ярко выраженные предфимозные извращения. Типа как я из скрипта всё скачанное сразу в БД кладу, а сасу возвращаю сгенерённую "пустышку".
Или для квазиобычных применений тоже чё-то не хватает?
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.

Re: Поддержка PHP скриптов

Сообщение zed » 06 фев 2013, 13:40

vasketsov писал(а):А в принципе это насколько актуально (perl или php)?

Уже по-моему не актуально. Да и некоторые плюшки САСа вроде интерфейсов качалки и proj4 в php/perl будет затруднительно пробросить по-моему.
vasketsov писал(а):Или для квазиобычных применений тоже чё-то не хватает?

Ну, периодически что-то всплывает - недавно тут где-то на форуме просили Base64 encoder/decoder в скриптах.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Поддержка PHP скриптов

Сообщение Tolik » 06 фев 2013, 14:17

vasketsov писал(а):А в принципе это насколько актуально (perl или php)?

По-моему, не актуально. PHP пытались прикрутить, и они даже как-то работали, но это было очень громоздко и глюкабельно.
Потом появились хедеры и пр., и надобность отпала.
Tolik
Гуру
 
Сообщения: 2604
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 280 раз.
Поблагодарили: 587 раз.

Re: Поддержка PHP скриптов

Сообщение zed » 06 фев 2013, 14:31

Tolik писал(а):Потом появились хедеры и пр., и надобность отпала.

Не так. Из-за того, что php не вошло в основную ветку, пришлось разработку забросить (так и не доведя до stable) и переключиться на допиливание паскаль-скриптов. И уже только потом, в них появились хидеры и ко.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Поддержка PHP скриптов

Сообщение Parasite » 06 фев 2013, 17:52

vasketsov писал(а):А в принципе это насколько актуально (perl или php)?
Я в том плане, что хедеры, посты и прочие куки в самом сасе есть.
По идее остались ярко выраженные предфимозные извращения. Типа как я из скрипта всё скачанное сразу в БД кладу, а сасу возвращаю сгенерённую "пустышку".
Или для квазиобычных применений тоже чё-то не хватает?

Вот именно что advanced functionality частенько и не хватает.
Большинство юзаемых мною ресурсов юзаются мною через те или иные самоскреативленные проксики (в основном на перле - ибо php терпеть ненавижу). Часто проксики весьма сложны - например дешифрация данных или автоматическая поддержка\перебор логинов\ключиков и авторегистрация\автокапча при бане предыдущих, итд.
Если функционал того же перла в его полном виде* будет как-то совокуплен с сасом плотнее, чем через "бутылочное горлышко" http-запросов - то это будет весьма хорошо, и без ложной скромности - цены такой сборке не будет.

--
* - под полным функционалом подразумевается весь функционал доступный языку в системе (со всеми установленными в перла дополнительными CPAN-модулями и тд.) То есть, надо как-то звать того же перла с САСа, отдавать ему данные, а в ответ как-то получать выхлоп обратно в САС.
Если полные доступные в системе возможности языка ввести нет возможности\желания, и он может\будет как-то специально кастрирован (как это сейчас с паскальскриптом) - то наверное лучше и не трогать ничего. Смысла нет - проще продолжать быдлокодить свои быдлопроксики вот прямо сегодня и безо всяких кастраций языка\функционала. 8-)
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 512 раз.

Пред.След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2