Елена Б.
6863 сообщения
#10 лет назад
Есть тяжеловатый скрипт -  формирование xlsx файла на 7000 строк. При запуске через ssh выполняется корректно за 5-7 минут. А из крона - нет. В обеих случаях используется одна и та же команда:
/usr/local/bin/php /home/#####//index.php

Часть файла через крон формируется, при чем, выполняется самый долгий цикл. То есть, примерное время вылета - 4-5 минут. Техподдержка хостинга же утверждает, что у них стоит ограничение 60 секунд на все, но это явно не так, так как а) при ручном запуске все выполняется, б) время работы через крон так же явно больше называемой цифры. 

Для полноты картины. Скрипт использует стандартные библиотеки php ZipArchive и SimpleXML. 

Буду очень благодарна за любые высказанные соображения, которые помогут в устранении проблемы. 
Сергей З.
39 сообщений
#10 лет назад
/usr/local/bin/php /home/#####//index.php >/dev/null 2>/dev/null
Елена Б.
6863 сообщения
#10 лет назад
mrGracer, это в крон добавить, я правильно поняла?
Сергей З.
39 сообщений
#10 лет назад
floppox, да
Елена Б.
6863 сообщения
#10 лет назад
Спасибо большое. Иду испытывать
минут через 20 буду знать результат. 
  
Не то. Обычная картина, та же, что и без этой приписки.
Я действительно какое-то время назад добавляла вывод отладочной информации в консоль, но дело в том, что после этого несколько раз скрипт по расписанию выполнился корректно, а потом перестал. 
Сергей Глушко
834 сообщения
#10 лет назад
floppox,у вас там или инклуды, и запись, или еще что то с неабсолютными путями, работать будет так
cd  /home/#####/ && /usr/local/bin/php index.php >/dev/null
тоесть сначала переходите в папку там где лежит скрипт, а потом его пускаете
Елена Б.
6863 сообщения
#10 лет назад
Инклудов море  
Попробую и это 
Сергей Глушко
834 сообщения
#10 лет назад
floppox, тогда понятно=) я бы еще рекомендовал команду по SSH
/usr/local/bin/php -i
скопировать вывод, и найти max_execution_time, должен быть 0, если стоит циферка не 0, тогда PHP CLI тоже слимитирован, хотя редко лимитят его=)
Андрей Халецкий
3562 сообщения
#10 лет назад
Все так только перенаправить вывод в файл и почитать ошибки =)
Если есть ССШ - запустить из терминала и посмотреть ошибки на экране.
Роман П.
1599 сообщений
#10 лет назад
Даже если решите проблему, то потом возникнут новые. Например, станет не 7000 записей, а 30 тыс. - скрипт будет работать полчаса и вешать весь сервер хостинг по головке не погладит.

такие вещи разбивают на отдельные куски и ставят на крон на почаще. Сто строк быстренько сделал и замер - за час в 4 утра сделает все 7 тыщ потихоньку.
Сергей Глушко
834 сообщения
#10 лет назад
Crist,а мы обычно берем VPS рублей за 200/мес, ставим php-fpm или php cgi , лимитируем использование процессора 70%, 30%  для сайта оставляем если не сильно посещаем=) и не надо извращаться по поводу переписывания на  куски выполнения, или писать функционал перезапуска с места обрыва=))) Проще и дешевле=)
SmartDesign, Цитата:
Если есть ССШ - запустить из терминала и посмотреть ошибки на экране.
Цитата:
а) при ручном запуске все выполняется,
 писали что при запуске по SSH все ок=)
floppox, ну как вышло?=)
Елена Б.
6863 сообщения
#10 лет назад
Цитата (micros):
floppox, ну как вышло?=)
Нет. Все та же хрень (((
Артем Л.
11416 сообщений
#10 лет назад
Не знаю в чем дело, так издали не понятно.
У меня было когда-то что-то подобное. Проблема решилась добавлением в начало крона:

set_time_limit(0); 
chdir(dirname(__FILE__));
Елена Б.
6863 сообщения
#10 лет назад
max_execution_time => 0 => 0
Сергей Глушко
834 сообщения
#10 лет назад
floppox,жаль, ну могу предложить акк у себя на сервере, поставьте скрипт, и попробуем запустить в CGI, и поглядим логи 
Елена Б.
6863 сообщения
#10 лет назад
Hungry_Hunter, в начало скрипта, может?
Артем Л.
11416 сообщений
#10 лет назад
Ну да, в начало скрипта, который выполняется по крону
Елена Б.
6863 сообщения
#10 лет назад
Через минуту стартанет по-новой. Поглядим. 
Сергей Глушко
834 сообщения
#10 лет назад
floppox,  сразу добавьте вначало
ini_set('log_errors', 'On');
ini_set('error_log', '/home/ххххх/php_errors.log');
php_errors.log сразу создайте по адресу, и поставьте 777 права=) Что бы хоть видеть на чем запинается=)
Елена Б.
6863 сообщения
#10 лет назад
Не поддается там это настройкам. Фигня полная... Остается только уговаривать зака на впс.