За последние 24 часа нас посетил 18951 программист и 1608 роботов. Сейчас ищет 891 программист ...

Потоки?

Тема в разделе "Прочие вопросы по PHP", создана пользователем PetrMarchenko, 31 июл 2009.

  1. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Потоки?

    Вылизать ошибка
    Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\Apache Group\Apache2\htdocs\test\index3.php on line 11



    Я так понимаю, что бы решить эту проблему надо создавать потоки или …?

    Код:
    ………………………
    for($n=0; $n<10; $n++)
    for($m=0; $m<10; $m++)
    {
    {
    ……
    $lines = file($url);
    …..
    }
    }

    ……………………..
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    или увеличить максимальное время выполнения скрипта.
     
  3. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    как???
    не интересно, предполагаеться обработка 10000 операций???
     
  4. kostyl

    kostyl Guest

    PetrMarchenko
    в php.ini, либо уменьшить время выполнения этих 10000 операций.
     
  5. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
  6. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    stream_select Есть инфа на русском, стыдно но Английский не знаю)))
     
  7. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Напишу подробно)))
    Есть мой сайт
    -он обращается к другому сайту $lines = file($url);
    -полученную информацию обрабатывает и меняется $urll;
    И вопрос не 10 минут и не пол часа, а длительного времени…, я пхп плохо знаю, но как мне подсказывает логика ГЫ), каждое обращения должно быть отдельным потоком(не зависимым), со своим таймаутом.
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    С какой частотой должны быть обращения? Судя по приведенному выше коду Вы устраиваете ддос-атаку.
     
  9. Shadow_exe

    Shadow_exe Активный пользователь

    С нами с:
    28 июл 2009
    Сообщения:
    45
    Симпатии:
    0
    Та простой парсер он просто делает...
     
  10. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Не угадали))) есть сайт или сайты не важно, хо содрать инфи и использовать в личных целях, частота запросов не важна, главное, что бы прошло время, не важно какое, конечно в разумных приделах и информация была обработана. Эту задачу можно реализовать и в ручную, но лень и не интересно, я готов потратить время написать код и лицезреть как за меня работает машина)))
     
  11. Shadow_exe

    Shadow_exe Активный пользователь

    С нами с:
    28 июл 2009
    Сообщения:
    45
    Симпатии:
    0
    PetrMarchenko

    Для получения страницы, пользуйтесь не file(), а file_get_contents - получает содержимое файла одной строкой, быстро и удобно.

    А чтобы Ваш скрипт не обрывался каждые 30 сек, пропишите в начале скрипта set_time_limit(0), только убедитесь что нет бесконечных циклов и установите таймаут между обращениями к другому сайту sleep(количество секунд ожидания).
     
  12. kostyl

    kostyl Guest

    Это не приветствуется нормальным этикетом. Надеюсь вам большее никто помогать не будет.
     
  13. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    file_get_contents--- возможно быстрей, но с одной строки трудней выбрать инфу)))
    цикл конечный 100%, так как это for)))
     
  14. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    Это не сдирания страниц, статей, …. . Это обычная выборка, которая нужна лично мне, не для показа кому либо, это можно сделать вручную, но лень, да и так интересний!!!!
     
  15. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0
    А зачем sleep()????
     
  16. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?
    2.  
    3. for($i = 0; $i < 100; $i++) {
    4.     --$i;
    5. }
    6.  
    7. ?>
    ПыСы: это к тому, что for — не показатель конечного цикла.
     
  17. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0


    Я конечно далеко не мегачувак, но делать какие либо операции с счетчиком в цикле for, это кардинально не правильно, на то это и for, что известно максимальное количество операций)))
     
  18. Shadow_exe

    Shadow_exe Активный пользователь

    С нами с:
    28 июл 2009
    Сообщения:
    45
    Симпатии:
    0
    Ты не прав. Т.к. есть куча ситуаций, в которых протсо необхходимо пропустить строку!
    PHP:
    1.  
    2. <?php
    3.  
    4. for($i = 0; $i < 100; $i++) {
    5.   if(....){
    6.     $i++;
    7.   };
    8. }
    9.  
    10. ?>
    11.  
    Так что не говори если не уверен, а на счет слип - чтобы не грузить канал, и сервак удаленный. А если удаленный сервак что-то типа Яндекса, то тебя без слипа забанят уже на открытии 5-6 странице))))

    file_get_contents - не возвращает весь текст в одной строке, а получает ее одной строкой! Это разные вещи!
     
  19. kostyl

    kostyl Guest

    Shadow_exe
    continue еще не отменяли...
     
  20. Shadow_exe

    Shadow_exe Активный пользователь

    С нами с:
    28 июл 2009
    Сообщения:
    45
    Симпатии:
    0
    kostyl
    continue - преждевременно заканчивает выполение данного прохождения цикла! А не следующего!
     
  21. PetrMarchenko

    PetrMarchenko Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    19
    Симпатии:
    0

    Не могу понять разницу и как с ним работать, нет примеров(((
     
  22. mantell

    mantell Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    125
    Симпатии:
    1
    Пишите на другом языке.