Добавить новость


Новости сегодня

Новости от TheMoneytizer

Парсер/демон на 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***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 то обе функции отрабатывают нормально, то есть логи создаются.

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

Читайте на сайте


Smi24.net — ежеминутные новости с ежедневным архивом. Только у нас — все главные новости дня без политической цензуры. Абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Мы не навязываем Вам своё видение, мы даём Вам срез событий дня без цензуры и без купюр. Новости, какие они есть —онлайн с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии. Smi24.net — живые новости в живом эфире! Быстрый поиск от Smi24.net — это не только возможность первым узнать, но и преимущество сообщить срочные новости мгновенно на любом языке мира и быть услышанным тут же. В любую минуту Вы можете добавить свою новость - здесь.




Новости от наших партнёров в Вашем городе

Ria.city
Музыкальные новости
Новости России
Экология в России и мире
Спорт в России и мире
Moscow.media










Топ новостей на этот час

Rss.plus