Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


cha0s

Recommended Posts

Такая ситуация имеется большой файл с 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

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

 

 

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

 

Надіслати
Поділитися на інших сайтах

  • 5 weeks later...

 

Такая ситуация имеется большой файл с 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.