- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Я не силён в администрировании серверов. Вот размышляю над такой ситуацией.
Знаю, что на шаред-хостингах обычно ставят временное ограничение на работу скрипта, чтобы какой-нибудь багописец не уложил весь сервер бесконечным циклом. Но указывать такие технические мелочи хостеры считают излишним. Какой и у кого именно предел - хз.
Предположим, у меня 1 раз в сутки запускается какой-то очень массивный PHP-скрипт (ну, например, статистику считает, неважно). Скорость его работы для меня не критична - пусть хоть час ковыряется. Поэтому я, дабы не наглеть и не укладывать своим скриптом весь сервак, хочу вставлять периодически в цикл sleep(). Ну например открутил 1000 повторов - заснул на несколько секунд, дал серваку вздохнуть, потом всё по-новой.
Но тогда растет общее время работы скрипта... его ж система кильнет :) Не выйдет ли мне боком такое джентельменство?
Но указывать такие технические мелочи хостеры считают излишним. Какой и у кого именно предел - хз.
Обычно 30 секунд.
Мне вот непонятно, зачем вам sleep? Делайте очереди заданий, чтобы скрипт успевал выполнять часть работы за отведённое время и запускайте его раз в 5 минут, например.
Вроде бы sleep не считается в общем времени выполнения скрипта
Лучше дробите вашу задачу на более мелкие и вызывайте крон почаще
Мне вот непонятно, зачем вам sleep? Делайте очереди заданий, чтобы скрипт успевал выполнять часть работы за отведённое время и запускайте его раз в 5 минут, например.
Тупо проще :)
можно написать в срипте
set_time_limit(0);
и он будет без ограничения работать(ну если хостер ограничения не ввел(чаще всего ограничения есть на фришках на платных такое встречаеться редко))
можно написать в срипте set_time_limit(0);
По совпадению вот только сегодня один товарищ рассказал мне этот вариант.
Прикольно, конечно, но как-то странно... слишком просто.
Это как если бы можно было прописать set_drive_space_limit(0) и юзать на шаред-хостинге все винты в дата-центре :)
Нормальный выход всего один - купить VDS ;)
msv, на самом деле, я проблему из этого не делаю и каких-то особых выходов не ищу.
Просто было интересно теоретически ситуацию рассмотреть.
А зачем тебе sleep? поставь цикл for, пусть переодически вместо того, что бы выполнять работу просто переберает значения по кругу пару часиков, потом продолжаешь. Эфект тот же будет.
По поводу set_time_limit действительно должно работать. И мне в основном встречались хостеры которые это разрешают. Можешь написать в поддержку и спросить их по этому поводу.
Сомневаюсь, что это нельзя делать.
Интересно проблему рассмотреть, ты меня поражаешь, я редко удивляюсь))) Но реально из-за того, что скрипт может выполняться ограниченное время, ты решил поставить слип, что бы он выполнялся еще дольше, какое тут рассмотрение ситуации...
Если даже тайм лимит не разрешен. То можно все пошагово через базу данных делать. В начале работы вытаскиваешь из базы параметр, в конце работы записываешь его в базу и делаешь такой скрипт, что бы он объязательно успевал выполниться за отведенное время.
Блин, ты с помощью php сервер не сможешь положить. Это надо стараться. Там стоит ограничение по оперативной памяти и по времени выполнения. Если твой скрипт успевает выполниться за 30 секунд, то никакой нагрузки он не несет. Пусть выполняеться. Какое джентельменство. Другое с помощью базы даннных. Если она внушительна, то сервер положить можно. Такое впечатление, что ты не знаешь, что хочешь спросить.)) Зачем я тогда отвечаю спрашиваеться??.....
А зачем тебе sleep? поставь цикл for, пусть переодически вместо того, что бы выполнять работу просто переберает значения по кругу пару часиков, потом продолжаешь. Эфект тот же будет.
Да вы шо)) Затестите скрипт
while (true) { };
Ну ни хрена же он не делает? А сервер на 30 секунд положит :)
Да вы шо)) Затестите скрипт
while (true) { };
Ну ни хрена же он не делает? А сервер на 30 секунд положит :)
нормальный сервер не положит, просто аккаунт тебе заблокируют и все :) Я также считаю что нужно делать все через базу а не через "sleep".