Передать из HTTP Tunnel управление другому скрипту

Помощь пользователям в работе с программой E-Trade PriceList Importer
Закрыто
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

День добрый.

Вопрос к разработчикам E-Trade HTTP Tunnel. Нам необходимо после запуска E-Trade HTTP Tunnel, сразу после того, как он отработает, передать управление другому скрипту. Подскажите, пожалуйста, как это правильно сделать?

Мы добавили в etrade_http_tunnel.php код

Код: Выделить всё

	//parsing products
	
	DEFINE ('AREA', 'A');
	DEFINE ('AREA_NAME' ,'admin');
	DEFINE ('ACCOUNT_TYPE', 'admin');

	require '../prepare.php';
	require '../init.php';
	$auth = array (
		'user_id' => 1,
		'area' => 'A',
		'user_type' => 'A',
		'login' => 'admin',
		'password_change_timestamp' => time(),
		'first_expire_check' => false,
		'this_login' => time(),
	);
	$_SESSION['auth'] = $auth;
	fn_redirect(Registry::get('config.admin_index').'?dispatch=categories.products_parsing');
сразу после

Код: Выделить всё

	// Delete temp file
	unlink($import_file_name);
(345 строка).

Этот код запускает скрипт, который перераспределяет товары между категорий на основе определённых правил. В процессе экпорта (во время работы HTTP-туннеля) наш скрипт выполняет свою работу — перемещает товары в нужные нам категории; проблема же заключается в том, что как только экпорт заканчивается (уведомление "Экпорт завершён"), все товары, которые только что переместил наш скрипт, возвращаются на свои места.

Наш разработчик говорит, что:
Суть задачи в том, что после отработки скрипта загрузки товаров нужно передавать управление другому скрипту. Чтобы сделать это, нужно знать где в коде заканчивается процесс загрузки продуктов. В принципе, вся задача — это перенести код в место после загрузки продуктов.
Подскажите, пожалуйста, как правильно поставить вызов нашего скрипта в HTTP Tunnel?
Вложения
etrade_http_tunnel.php.zip
Наш код — с 345 по 367
(5.74 КБ) 212 скачиваний
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

Попробуйте добавить конструкцию if в этом месте и добавить ваш код

Код: Выделить всё

if ($type_op=="UPDATE") {
	// тут ваш код
}
mod_tunnel.png
mod_tunnel.png (45.11 КБ) 5224 просмотра
Этот код будет выполняться так же при обновлении сайта из программы СС.
Поэтому возможно вам необходимо будет установить вторую копию туннеля в отдельную папку для программы СС.
С уважением, поддержка ElbuzGroup.
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

К сожалению, это решение не помогло.

Скрипт так вообще перестал отрабатываться, т.к. наш скрипт отрабатывает 2-5 минут, а сейчас весь экспорт проходил меньше минуты. Ну и товары, естественно, не переместились куда нужно.
Вложения
etrade_http_tunnel.php.zip
(5.75 КБ) 208 скачиваний
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

Попробуйте вместо вашего кода, добавить временный код (например записать в файл любой текст) для проверки срабатывает ли в этом месте выполнение кода.
С уважением, поддержка ElbuzGroup.
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

Тестовый код (создание файла и запись в него) отрабатывает в обоих случаях: и в том, что у нас был первым, и в том, какой Вы посоветовали сделать.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

Если код отрабатывает во втором случае, тогда должен выполняться ваш код.
С уважением, поддержка ElbuzGroup.
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

Действительно, чуть подправили свой код, и он заработал. Спасибо за помощь! :)
Закрыто

Вернуться в «Техническая поддержка программы E-Trade PriceList Importer»