Запуск тяжелого обработчика из консоли сервера

Запуск тяжелого обработчика из консоли сервера

601
12.07.2017
07.08.2018

Настраивал я тут недавно переезд сайта с торгового портала на систему 1С-Битрикс. Перенести нужно было более 9 тыс. товаров с очень большим объемом информации по каждому товару. Процесс обработки данных длился не один день.

Для начала хотел сделать через ajax-обработчик, чтобы видеть весь процесс, отслеживать логи, анализировать, искать проблемные места. Но когда просчитал, примерно, сколько же это займет времени - решил поменять тактику.

В корне сайта был создан файл с содержимым:

@set_time_limit(0);
ignore_user_abort(true);
ini_set('memory_limit', '1024M');
ini_set('max_execution_time', 0);
$_SERVER['DOCUMENT_ROOT'] = realpath(dirname(__FILE__).'/../..');
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
use Bitrix\Main\Application;
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/php_interface/classes/CMigrator.php');
$context = Application::getInstance()->getContext();
$request = $context->getRequest();
$action = $request->get('action');
$num = $request->get('num');
$migrator = new CMigrator();
if($action=='processingThePAge'){
	if(intval($num)>0){
		$arRow = $arRows[$num];
		$arRow['num'] = $num;
		$migrator->processOneRwoPlaton($arRow);
		$num++;
		if(isset($arRows[$num])){
			system("php /home/bitrix/ext_www/site.com/processIt.php \"action=processingThePAge\" \"num=$num\" > /dev/null 2>&1 &");

		}
	}
}

Функция system перезапускает наш скрипт с новыми параметрами. Не забывайте указывать > /dev/null 2>&1 & - это нужно для блокирования вывода инфомрации в лог сервера.

Дальше, заходим в консоль сервера и запускам данный файл на запуск:

/usr/bin/php -f /home/bitrix/ext_www/site.com/processIt.php

Т.е. указываем php обработать файл по указанному абсоллютному пути.



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку