![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| nepster |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Возникла следующая проблема:
имеется некий пхп скрипт, который отрабатывает примерно 3000 секунд. Переехали на новый сервер, и получилось, так что скрипт останавливает свою работу примерно через 6 минут. Теперь в чем прикол: итак php.ini
script.php
усложняем: - на локальном работает (денвер) - на старом сервере работает - НА НОВОМ ОСТАНАВЛИВАЕТСЯ ПРИМЕРНО ЧЕРЕЗ 6 МИНУТ И при этом на новом сервере, аналогичный скрипт который выполняется примерно 800 секунд срабатывает на ура. еще чуть чуть усложним: - ошибок никаких нет, так же в html коде - логи апача молчат и теперь джек пот супер лото усложение: - если на новом сервере через SSH доступ, запустить скрипт из консольки он выполняется полностью. Подскажите пожалуйста в чем проблема, как это вооще возможно? |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Немного не по теме, но все же - а что делает скрипт, который выполняется дольше 6 секунд? По идеи даже в кроне такого быть не должно.
|
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
она могла не установиться, если у хостера стоит запрет на изменение этого параметра из PHP да все что угодно. У меня есть пара демонов на PHP, работающих намного долшье чем 6 секунд. Это сообщение отредактировал(а) krundetz - 12.2.2013, 16:21 |
|||
|
||||
| nepster |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
у хотера есть разрешение, все нормально.
то делает скрипт, просчитывает структуры пользователей и кеширует их. Добавлено через 9 минут и 17 секунд скрипт например
отработает Добавлено через 11 минут и 10 секунд таки добрался до ошибок:
|
||||
|
|||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
подскажите пожалуйста как с этим ороться, никогда не встречал подобной ошибки.
Нашел несколько забугорных сайтов, но не могу понять в чем дело, что это такое ? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
nepster, Если в гугель забить строку с ошибкой, то через пару-тройку кликов можно попасть на объяснеение.
В конфиге апача стоит опция TimeOut на 6 секунд Решений целый пучёк: - менять параметр, путем ругательств с сапортом хостинга. - выводить какую-то фигню в броузер не реже раза в 6 секунд - запускать скрипт в консоли. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
самый разумный и быстрый вариант, так как в случае переезда, первый вариант предется повторить по новой я правильно понимаю, что достаточно вызывать ob_flush() с интервалом в 6 секунд? Видимо наилучшим вариантом будет выделение таймера в отдельный поток. Это сообщение отредактировал(а) krundetz - 13.2.2013, 09:57 |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Ну это так,`готовься к худшему, надейся на лучшее`. Обычно, хостеры меняют параметры сервера с большим скрипом. Если это не vps, то на сервере держится целый комплект сайтов, которые используют те же параметры. 6 секунд - не дефолтное значение, значит была причина, по которой его поменяли... Угу. Про консоль я говорил, в смысле system, exec и т.д. без ожидания возврата. Если они не закрыты, конечно.
Обычно - да. Таймер в отдельный поток - это как ? Форк ? Если операция разбивается на несколько не долгих - можно и пробелы печатать между итерациями, наверное... Это сообщение отредактировал(а) ksnk - 13.2.2013, 10:57 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nepster |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
все нормально это vps.
я вообще ничего не понимаю, есть еще 1 скрипт, который вполняется 2000 сек и все нормально. Полез в httpd.conf, закоментировал
скрипт выполнился. Всем ольшое спасибо. |
||||
|
|||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Да, через pcntl.
Тут проблема в том, что нам никто не гарантирует, что сами операция между которыми мы собираемся печатать пробелы будут длится меньше 6 секунд. То есть нужно подбирать итеративным путем на глаз, который будет зависеть от нагрузки на сервер. Поменяется нагрузка возможно нужно будет подбирать по новой. Поэтому отдельный поток на таймер. А что мы не можем просто сбросить пустой буфер? Он обязательно должен быть чем то заполнен? Пожалуйста. Успехов. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |