Добавить новость
ru24.net
Интернет
Март
2020

Парсер/демон на php падает без причины

0
Здравствуйте уважаемые форумчане. Прошу подсказки у тех кто имеет опыт настройки 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***91;'type'***93; . ' | message - '$err_arr***91;'message'***93; . ' | file - '.$err_arr***91;'file'***93;. ' | line - '.$err_arr***91;'line'***93;;
    
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***91;'type'***93; . ' | message - '$err_arr***91;'message'***93; . ' | file - '.$err_arr***91;'file'***93;. ' | line - '.$err_arr***91;'line'***93;;
    
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 то обе функции отрабатывают нормально, то есть логи создаются.

В общем я в тупике, предполагаю что это некое ограничение на хостинге, однако не могу понять в чем именно оно состоит и как его пофиксить.



Moscow.media
Частные объявления сегодня





Rss.plus
















Музыкальные новости




























Спорт в России и мире

Новости спорта


Новости тенниса