Перейти к содержанию
cha0s

Как решить проблему 504 Gateway Time-out (nginx)?

Рекомендуемые сообщения

Такая ситуация имеется большой файл с 30.000 товарами которые я фильтрую скриптом, после двух минут скрипт обрывается с ошибкой `504 Gateway Time-out`, проблем в самом коде нету, пробовал циклом например только 10.000 проходить, проходит нормально, а вот весь потом обрывается так как ему не хватает времени на выполнение, пробовал в скрипте перед циклом писать 

 

ini_set("max_execution_time", "900");
set_time_limit(900);
 
и все равно он обрывается после 2-х минут =(, у хостинга нету нету возможности залезть в php.ini конфиг или ngnixa в котором так-же может быть задержка, скажите как решить проблему? как можно раз пройти все товары но так чтоб не получить Time-out? ну например в php сделать что-то чтоб он как-бы чувствовал что не весит а работает все-таки?:) Помогите кто чем может - советом например=))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цель такого прохода?

Какой фильтр?

Что фильтруете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цель такого прохода?

Какой фильтр?

Что фильтруете?

 

имеется *.xml файл с продуктами(их 30000+), в зависимости от атрибутов продуктов, я из расставляю по нужным категориям, все как-бы работает, я просто добавил в Total Import того что там не было=) вот кусочек кода

			$product_num = 0;
			while(($xmlproducts = $this->model_tool_total_import->getNextProduct($product_num))) {
			if ($product_num == 10000) {break;} else { $product_num++;}
				

				if (strtolower($xmlproducts['TYPE']) == 'edt' || strtolower($xmlproducts['TYPE']) == 'edp') {
					if (strtolower($xmlproducts['TESTER']) == 'no' && $xmlproducts['SET'] == '') {
						if (strtolower($xmlproducts['SEX']) == 'm') {
							$this->model_tool_total_import->setProductIdCategory($xmlproducts['ID'], 9); 
						} elseif (strtolower($xmlproducts['SEX']) == 'w') {
							$this->model_tool_total_import->setProductIdCategory($xmlproducts['ID'], 8); 
					}			
				}
.............

с извращением я дробил выборку на части(с 0 до 10000), так как если сделать цикл до конца продуктов с 0 по 30000, это тупо еррор 504  :unsure: и как быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
*.xml файл с продуктами(их 30000+),

 

:)

Загрузить файл весь с потрохами...

Затем его разобрать... а там строится дерево - не маленьких размеров

Затем

model_tool_total_import->getNextProduct

Наверное основанный на "дефолтной" модели

 

 

Так что здесь нужен комплекс... решений.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Такая ситуация имеется большой файл с 30.000 товарами которые я фильтрую скриптом, после двух минут скрипт обрывается с ошибкой `504 Gateway Time-out`, проблем в самом коде нету, пробовал циклом например только 10.000 проходить, проходит нормально, а вот весь потом обрывается так как ему не хватает времени на выполнение, пробовал в скрипте перед циклом писать 

 

ini_set("max_execution_time", "900");
set_time_limit(900);
 
и все равно он обрывается после 2-х минут =(, у хостинга нету нету возможности залезть в php.ini конфиг или ngnixa в котором так-же может быть задержка, скажите как решить проблему? как можно раз пройти все товары но так чтоб не получить Time-out? ну например в php сделать что-то чтоб он как-бы чувствовал что не весит а работает все-таки? :) Помогите кто чем может - советом например=))

 

Я обратился к хостеру с просьбой увеличить время отклика апачи, помогло

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.