Старый 22.03.2020, 01:13   #1
Специалист
 
Аватар для slovoblud
 
Регистрация: 24.07.2010
Сообщений: 495
Вес репутации: 190
slovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордится
По умолчанию php скрипт падает без причины

Здравствуйте уважаемые форумчане. Прошу подсказки у тех кто имеет опыт написания парсеров, демонов либо других "долгоиграющих" php скриптов. Суть такая пишу скрипт загрузки товаров в интернет магазин из xml прайса. Столкнулся с той проблемой что на моем сервере парсер отрабатывает нормально, однако на хостинге клиента прекращает работу спустя 20-60 минут после запуска. В итоге я решил проверить как долго вообще будет выполнятся php скрипт на клиентском хостинге, для проверки написал что то вроде демона:

PHP код:
<?php
ini_set
('max_execution_time'0);
set_time_limit(0);
ini_set("memory_limit""128M");
ignore_user_abort(true);
ini_set('error_reporting'E_ALL);
ini_set('display_errors'1);
ini_set('display_startup_errors'1);

function 
shutdown()
{
    
file_put_contents(__DIR__ '/log/shutdown_log.txt''Выполнили функцию shutdown!'.PHP_EOLFILE_APPEND);
    
$err_arr error_get_last();
    
$err 'type - '.$err_arr['type'] . ' | message - '$err_arr['message'] . ' | file - '.$err_arr['file']. ' | line - '.$err_arr['line'];
    
file_put_contents(__DIR__ '/log/shutdown_log.txt'$errFILE_APPEND);
    
}

function 
sig_handler($signo)
{
    
$info "\n" 'received signal ' $signo "\n";
    
$info .= "\n" 'Выполнили функцию sig_handler! ' $signo "\n";
    
file_put_contents(__DIR__ '/log/sig_handler_log.txt'$info.PHP_EOLFILE_APPEND);
    
$err_arr error_get_last();
    
$err 'type - '.$err_arr['type'] . ' | message - '$err_arr['message'] . ' | file - '.$err_arr['file']. ' | line - '.$err_arr['line'];
    
file_put_contents(__DIR__ '/log/sig_handler_log.txt'$errFILE_APPEND);
    exit;
}

register_shutdown_function('shutdown');
declare(
ticks 1);
pcntl_signal(SIGTERM"sig_handler");
pcntl_signal(SIGINT"sig_handler");


$time date('H-i-s');
file_put_contents(__DIR__ '/log/time_test_ON.txt'$time);

while(
true){
    
$time date('H-i-s');
    
file_put_contents(__DIR__ '/log/time_test_log.txt'$time);
    
sleep(1);
}
После запуска демона через консоль, он прекращает работу примерно через 20 минут, при этом shutdown() и sig_handler() - никаких логов не создают. Хотя если убить скрипт через консоль командой kill pid то обе функции отрабатывают нормально, то есть логи создаются.

В общем я в тупике, предполагаю что это некое ограничение на хостинге, однако не могу понять в чем именно оно состоит и как его пофиксить.
slovoblud вне форума   Ответить с цитированием
Старый 22.03.2020, 03:04   #2
Добрый модератор
 
Аватар для zhegloff
 
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1024
zhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущее
По умолчанию

Лучше спросить у хостера сначала.
__________________
Установка кода сапы от $9.95. Пишите в личку.
Правильный хостинг.
В личке бесплатно не отвечаю обычно.
zhegloff вне форума   Ответить с цитированием
Старый 22.03.2020, 20:09   #3
Специалист
 
Аватар для slovoblud
 
Регистрация: 24.07.2010
Сообщений: 495
Вес репутации: 190
slovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от zhegloff Посмотреть сообщение
Лучше спросить у хостера сначала.
Я бы с удовольствием, просто сперва понять бы о чем конкретно их спрашивать. Типа какое ограничение изменить и тому подобное... И еще как бы понять в каком режиме на хостинге запущен php как CGI или как модуль Apache через phpinfo() это как то можно понять?

Добавлено через 16 часов 59 минут
Получил ответ от хостинга:
"Здравствуйте, на наших серверах виртуального хостинга есть ограничение в 1200 секунд на время работы пользовательского процесса. Запущенные Вами процессы были остановлены при превышении данного лимита:" - так что таки да на их стороне была проблема.

Последний раз редактировалось slovoblud; 22.03.2020 в 20:09. Причина: Добавлено сообщение
slovoblud вне форума   Ответить с цитированием
Старый 25.03.2020, 19:37   #4
Эксперт
 
Аватар для Anadonam
 
Регистрация: 29.10.2009
Адрес: Вологда and SSHA
Сообщений: 3,896
Вес репутации: 352
Anadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущее
Отправить сообщение для Anadonam с помощью ICQ
По умолчанию

20 минут ???
тут не ошибка??? (не секунд? )

да вы сума сошли......
не один адекватный хостинг не позволит вам такое!
Anadonam вне форума   Ответить с цитированием
Старый 25.03.2020, 19:48   #5
Специалист
 
Аватар для slovoblud
 
Регистрация: 24.07.2010
Сообщений: 495
Вес репутации: 190
slovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Anadonam Посмотреть сообщение
20 минут ???
тут не ошибка??? (не секунд? )

да вы сума сошли......
не один адекватный хостинг не позволит вам такое!
Ну оно как бы спрос не бьет в нос) Да просто писал сложный скрипт загрузки товаров с использованием API, из-за которого все время валились ошибки. В итоге грешил не на хостинг, а на то что скрипт написал криво. И только спустя пару дней додумался проверить, а сколько вообще процесс живет на хостинге. В общем жесть... век живи век учись. В будущем для подобных задач только vps.
slovoblud вне форума   Ответить с цитированием
Старый 25.03.2020, 20:11   #6
Эксперт
 
Аватар для Anadonam
 
Регистрация: 29.10.2009
Адрес: Вологда and SSHA
Сообщений: 3,896
Вес репутации: 352
Anadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущее
Отправить сообщение для Anadonam с помощью ICQ
По умолчанию

да мне трудно представить сколько это товаров (карточек)
миллионов 50 - 60 ? ну так тогда нужен иной подход и таблица в БД не одна!

ну так из расчета
50 000 хватает 15-20 секунд.. (с большим числом работать не довелось)
Anadonam вне форума   Ответить с цитированием
Старый 25.03.2020, 21:16   #7
Специалист
 
Аватар для slovoblud
 
Регистрация: 24.07.2010
Сообщений: 495
Вес репутации: 190
slovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордитсяslovoblud - за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Anadonam Посмотреть сообщение
да мне трудно представить сколько это товаров (карточек)
миллионов 50 - 60 ? ну так тогда нужен иной подход и таблица в БД не одна!
Не так много. Счет идет на несколько тысяч, может несколько десятков тысяч. Просто загрузка идет не на прямую в БД, а через woocommerce api, товары вариативные, с разными цветами, размерами, соответственно для каждой вариации свои цена артикул и тд. Поэтому много проверок идет по ходу загрузки.
Цитата:
Сообщение от Anadonam Посмотреть сообщение
50 000 хватает 15-20 секунд.. (с большим числом работать не довелось)
Интересно... не видел такой скорости. Это наверное если готовые данные напрямую в базу пулять, без какого либо парсинга исходного документа, перебора товаров, проверки условий и прочего, тогда наверное можно с такой скоростю отработать.
slovoblud вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Падает доход. Подскажите возможные причины... Liam Вопросы по работе системы 1 15.07.2012 09:45
Обратный эффект! покупаю ссылки, страница в выдаче все падает и падает?? Dumo4ka Общие вопросы оптимизации 40 31.01.2012 16:48
Причины пессимизации mongoose59 Яндекс 16 01.08.2011 14:20
падение pr с 3 до 0. Причины gulliver Google, MSN, Yahoo 20 05.02.2010 10:58
Указание причины отказа для О deep.shiva Вопросы по работе системы 12 29.01.2008 14:12


Часовой пояс GMT +3, время: 17:03.