Виснет Cron

F2
На сайте с 01.04.2008
Offline
105
335

Ситуация следующая. Есть выделенный сервер, на нем крутится до 10 сайтов, ресурсов хватает, но суть не в том.

На сервере размещен интернет магазин на opencart, загружаются и обновляются товары в котором из *.xml файл специальным модулем по крону. И все бы ничего, если бы не систематичное подвисание выполнение скрипта на одной из строчек одних и тех же прайсов. Есть и другие прайсы с таким же или даже большим объемом данных и там все нормально.

Крон стартует php скрипт каждую минуту

php -c /home/user_dir/etc/php5/php.ini /home/user_dir/public_html/admin/cron.php

Перезапуск службы крона не помогает, просто скрипт зависает на следующей строке прайса.

Подскажите пожалуйста в какую сторону копать. Возможно есть какие-то лимиты или кто сталкивался с подобным.

lonelywoolf
На сайте с 23.12.2013
Offline
151
#1
flint2000:
Крон стартует php скрипт каждую минуту

Зачем?

Ну и вообще, зависает PHP-скрипт, а при чем тут Cron? Отлаживайте скрипт. Если считаете, что виноват Cron - покажите его лог.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
F2
На сайте с 01.04.2008
Offline
105
#2
lonelywoolf:
Зачем?

Ну и вообще, зависает PHP-скрипт, а при чем тут Cron? Отлаживайте скрипт. Если считаете, что виноват Cron - покажите его лог.

Возможно я не совсем правильно название темы сформулировал. Если бы проблема была полностью в скрипте, то он вис бы на всех прайсах, а так только на некоторых, притом системно. Сам крон пытается стартонуть скрипт каждую минуту, но он как бы выполняется, потому повторно выполнение не запускается. Смотрел сам код xml прайса ничего необычного там нету, к тому же на обычном шаред хостинге этот прайс отлично обрабатывается. Я уже не знаю с какой стороны подойти.

FoxCloud
На сайте с 08.11.2016
Offline
55
#3

Посмотрите логи

/var/log/cron

если там есть запись о запуске команды

php -c /home/user_dir/etc/php5/php.ini /home/user_dir/public_html/admin/cron.php

то к cron нет вопросов и нужно копать в код самого скрипта /cron.php

вероятно там нет таймаута на загрузку каких-то данных, типа file_get_contents('http://example.com/');

И покажите саму предположительно проблемную строчку прайсов. Будет легче дать ответ.

FoxCloud (http://ru.foxcloud.net/)размещение в Европе / Америке / России. Услуги для любого проекта.
lonelywoolf
На сайте с 23.12.2013
Offline
151
#4
flint2000:
Сам крон пытается стартонуть скрипт каждую минуту,

crontab -l в студию.

ffreest
На сайте с 22.08.2010
Offline
89
#5

Временно отключи запуск, каждую минуту и по пробуй запустить вручную, и посмотри сколько времени выполняется, возможно за 1 минуту не успевает выполниться и он в догонку 2 раз или даже 3 и более запускает повторно.

Размести бесплатно объявление по продаже готового бизнеса по недвижимости твой адрес (https://tvoyadres.ru/nedvizhimost/biznesy/). Узнай реальную стоимость своей квартиры оценка квартиры онлайн (https://tvoyadres.ru/ocenka/kvartira/).
F2
На сайте с 01.04.2008
Offline
105
#6

Все спасибо. Магия форума сработала. Стоит написать на форум, как сразу находишь проблему. Три дня убил на прочтения манов и истязания над гуглом в поисках правды. Стоило написать на форму, как через 30 минут нашел проблему

lonelywoolf
На сайте с 23.12.2013
Offline
151
#7

flint2000, Так а в чем проблема то была? Может ещё кто гуглить будет.

F2
На сайте с 01.04.2008
Offline
105
#8
lonelywoolf:
flint2000, Так а в чем проблема то была? Может ещё кто гуглить будет.

В скрипте и похоже в библиотеках php. Как раз разбираюсь

---------- Добавлено 30.04.2020 в 10:03 ----------

В общем проблема была в моих кривых руках и склерозе. Привык запускать скрипт просто php -c и забыл что у меня несколько php версий, нужно было всего лишь прописать php5 -c, ну а сама суть в том, что не была подключена библиотека mbstring

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий