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

Скрипт выполненный по cron прекращает работу.

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

Здравствуйте. У меня тут проблема. Запустил я скрипт через cron, смотрю в логах, вроде выполняется, а минут через 5-10 все, остановился. До этого у меня была проблема с gninx, он так же вырубал через пару минут скрипт (скрипт я выполнял просто через браузер, вписав ссылку в адресную строку), там проблему хостер помог решить методом: proxy_connect_timeout 9000; proxy_send_timeout 9000; proxy_read_timeout 9000;

 

А что может быть сейчас тут?

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


Ссылка на сообщение
Поделиться на другие сайты
Только что, mysubcult сказал:

Здравствуйте. У меня тут проблема. Запустил я скрипт через cron, смотрю в логах, вроде выполняется, а минут через 5-10 все, остановился. До этого у меня была проблема с gninx, он так же вырубал через пару минут скрипт (скрипт я выполнял просто через браузер, вписав ссылку в адресную строку), там проблему хостер помог решить методом: proxy_connect_timeout 9000; proxy_send_timeout 9000; proxy_read_timeout 9000;

 

А что может быть сейчас тут?

wait_timeout

interactive_timeout в mysql

А также время выполнения скриптов в php
Обычно у хостеров на виртуальном хостинге время выполнения ограничено 10 минутами даже по cron.

И да, если у вас скрипт работает так долго - это либо плохой скрипт либо очень медленный магазин.

 

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
33 minutes ago, snastik said:

wait_timeout

interactive_timeout в mysql

А также время выполнения скриптов в php
Обычно у хостеров на виртуальном хостинге время выполнения ограничено 10 минутами даже по cron.

И да, если у вас скрипт работает так долго - это либо плохой скрипт либо очень медленный магазин.

 

Это скрипт выгрузки товара, он у меня выполняется примерно часа полтора.

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


Ссылка на сообщение
Поделиться на другие сайты
36 минут назад, mysubcult сказал:

До этого у меня была проблема с gninx, он так же вырубал через пару минут скрипт

 

это вам попался еще терпеливый nginx, по умолчанию у него тайм-аут в 60 сек, а далее ошибка (500-я как правило).

Если у вас общий (виртуальный) хостинг,  то с коррекцией таймаутов может быть проблема, вам не все разрешено. Или у вас VDS?

 

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, mysubcult сказал:

Это скрипт выгрузки товара, он у меня выполняется примерно часа полтора.

 

это что-то ненормальное.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
5 minutes ago, sitecreator said:

 

это вам попался еще терпеливый nginx, по умолчанию у него тайм-аут в 60 сек, а далее ошибка (500-я как правило).

Если у вас общий (виртуальный) хостинг,  то с коррекцией таймаутов может быть проблема, вам не все разрешено. Или у вас VDS?

 

vds

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


Ссылка на сообщение
Поделиться на другие сайты
4 minutes ago, sitecreator said:

 

это что-то ненормальное.

Согласен, уже миллион раз пожалели, что за это ещё и деньги отдали..

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, mysubcult сказал:

vds

 

тогда у вас есть возможности для коррекции.

Но все равно ставить таймаут на 2 часа, например, это будет верхом неразумности.

Можно, конечно, поковыряться и поставить исключительно для папки этого скрипта свои таймауты.

 

5 минут назад, mysubcult сказал:

Согласен, уже миллион раз пожалели, что за это ещё и деньги отдали..

 

так может быть время подумать уйти на другое решение.

Вы из прайсов товары импортируете?

Сколько товаров за один раз?

 

Что за модуль используете?

 

даже для 50 000 товаров обычно хватает 10 минут с запасом.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, mysubcult сказал:

Это скрипт выгрузки товара, он у меня выполняется примерно часа полтора.


Дальше реально гадание на кофейной гуще.
Но все это лечится.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
4 minutes ago, sitecreator said:

 

тогда у вас есть возможности для коррекции.

Но все равно ставить таймаут на 2 часа, например, это будет верхом неразумности.

Можно, конечно, поковыряться и поставить исключительно для папки этого скрипта свои таймауты.

 

 

так может быть время подумать уйти на другое решение.

Вы из прайсов товары импортируете?

Сколько товаров за один раз?

 

Что за модуль используете?

 

даже для 50 000 товаров обычно хватает 10 минут с запасом.

https://shop.ocext.com/obmyen-dannymi/xml-import--yml-import-cherez-anyxml-–-dlya-importa-lyubykh-xml

Там нет обновления, товары каждый раз по новому загружаются, сам автор, как и скрипт вообще не дружат с урсаким языком, настроек миллион, но поймет их наверно только автор, да и то вряд ли он понимает. Заказывали у него настройку, которая стоит ещё 1500, настроил не как нужно и не настроил автообновление, под предлогом, что это невомзо, хотя функция такая у него есть, вот и пытаемся сейчас что-то сделать.

Выгрузка из yml, всего там товаров около 2 тысяч и файл весит 25мб.

Изменено пользователем mysubcult

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


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, mysubcult сказал:

Там нет обновления, товары каждый раз по новому загружаются

 

жесть. т. е. база товаров чистится под ноль и все с начала?

даже если обновить нужно лишь цену?

 

Если вы делаете обновления, то у вас есть параметр, по которому вы однозначно можете идентифицировать товар?

Модель? Или SKU, например?

 

Уходите от этого модуля раз такие проблемы. Есть же альтернативы, и они есть прямо тут на форуме, хоть и не обязательно тут.

Вы альтернативы смотрели? Почему именно этот модуль?

 

Чтобы не гадать, какие у вас задачи стоят? желательно точно описать.

 

И сами прайсы откуда берете? можно ссылку? поставщик, видимо?

Изменено пользователем sitecreator

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


Ссылка на сообщение
Поделиться на другие сайты
1 minute ago, sitecreator said:

 

жесть. т. е. база товаров чистится под ноль и все с начала?

даже если обновить нужно лишь цену?

 

Если вы делаете обновления, то у вас есть параметр, по которому вы однозначно можете идентифицировать товар?

Модель? Или SKU, например?

 

Уходите от этого модуля раз такие проблемы. Есть же альтернативы, и они есть прямо тут на форуме, хоть и не обязательно тут.

Вы альтернативы смотрели? Почему именно этот модуль?

 

Чтобы не гадать, какие у вас задачи стоят? желательно точно описать.

Идентификация по sku, этот модуль не удаляет, к примеру картинки товара, если они есть, но он их каждую по пикселям там что ли проверяет, я не знаю, но файл в 25сб он обрабатывает почти 2 часа у меня. И вот я загрузил товар, запускаю снова, он снова обновляет 2 часа, изменений никаких, т.е.он проверку тоже по времени столько же делает товаров. А что до интерфейса, то потехи ради могу скинуть все наши переписки с автором и сам модуль изнутри. На сообщения по имейл отвечает он неделю, причем вообще не понятно, на что он отвечает, будто мы ему один вопрос, а он вообще на своей волне там. 

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


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

Мы ему писали, чтобы он выпустил обновление, чтобы товар каждый раз весь не перекачивать. Ждали наверно месяц, вот что он прислал спустя месяц. (Прикладываю скриншот переписки и то, что он добавил в модуль)

 

Screenshot_20170721-001418.png

Screenshot_20170721-001507.png

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


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, mysubcult сказал:

Запустил я скрипт через cron

 

1 час назад, mysubcult сказал:

До этого у меня была проблема с gninx, он так же вырубал через пару минут скрипт

 

И тут возникает вопрос, а как вы его запускаете то? Неужели через wget/curl? Запускать надо исключительно через cli! Во-первых, это снимает проблему с какими-либо лимитами, которые могут обрезать выполнения скрипта по времени, а во-вторых, это снимает лишние накладные расходы, которые возникают с wget/curl.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Dotrox сказал:

 

 

И тут возникает вопрос, а как вы его запускаете то? Неужели через wget/curl? Запускать надо исключительно через cli! Во-первых, это снимает проблему с какими-либо лимитами, которые могут обрезать выполнения скрипта по времени, а во-вторых, это снимает лишние накладные расходы, которые возникают с wget/curl.

 

Не снимает! Если криво настроен сервер! Не начинайте как всегда лить воду в уши!

  • +1 2

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


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

Dotrox, можно поподробнее?

snastik, можно ещё подробнее?))

Изменено пользователем mysubcult

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


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, mysubcult сказал:

Идентификация по sku

 

вы прайсы ведь берете с сайта поставщика, так ведь?

можно примеры прайсов (ссылки на сайт поставщика)?

 

то, что есть однозначная идентификация - это хорошо.

Ни один нормальный модуль импорта не будет перелопачивать весь товар.  Только тот, который нужно изменить/добавить.

 

для начала нужно определиться в каком формате/форматах вам предоставляют прайс.

Вы согласны, что нужно уходить от вашего текущего модуля и менять его на другой? и прайс может быть в другом формате. хоть и yml не является проблемой.

бывает, конечно, что денег нет на покупку нового.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, mysubcult сказал:

можно поподробнее?

 

да это вообще сейчас не принципиально.

хоть через nginx будет скрипт запущен, хоть как cli.

у вас, похоже, что проблема не там.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, snastik сказал:

Не снимает! Если криво настроен сервер!

А если php не установлен, то вообще скрипт не запустится :-D Сколько же всяких "если" бывает, когда нужно придраться и покритиковать стандартное решение.

Если для cli всё же прописан в конфиге лимит и доступа к конфигу нет, то есть set_time_limit(0), который решает проблему.

А уж проблему с лимитами в nginx этот вариант решает даже на самом кривом сервере, ибо nginx вообще участия не принимает в запуске через cli!

 

Или вы пытаетесь сказать, что скрипты надо по крону через wget/curl запускать?

  • +1 1

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


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

http://fireboxshop.com/link/d2934aea3d9c733a3e3859aa0049ce84daca2b13.xml - это ссылка выгрузки.

Пока как раз вопрос в финансах, списался уже тут с автором модуля импорта yml (ambalochka вроде ник). Говорит, что файл почти идеальный и он поможет настройку и она бесплатная и включена в стоимость. 

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Dotrox сказал:

ибо nginx вообще участия не принимает в запуске через cli!

 

да это все так, только там, похоже, что проблема в самом модуле.

2 часа - ну это что-то за гранью добра и зла. И при этом, небось, 100% загрузка процессора.

 

Хотя дело может быть и в чем-то другом. ТС пока не сказал сколько же товаров разом обновляется. Может быть там миллионов 10 товара, а может быть импорт еще и картинки заново закачивает. Мы этих тонкостей не знаем пока.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
3 minutes ago, sitecreator said:

 

да это все так, только там, похоже, что проблема в самом модуле.

2 часа - ну это что-то за гранью добра и зла. И при этом, небось, 100% загрузка процессора.

 

Хотя дело может быть и в чем-то другом. ТС пока не сказал сколько же товаров разом обновляется. Может быть там миллионов 10 товара, а может быть импорт еще и картинки заново закачивает. Мы этих тонкостей не знаем пока.

Нет, я же написал вроде выше, во всем файле всего около 2200 товара, сам начальный файл yml состоит из 220 тысяч строк, примерно. Нагрузка - да, когда скрипт выполняется - сайт, к примеру, вообще не доступен.

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


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, Dotrox сказал:

А если php не установлен, то вообще скрипт не запустится :-D Сколько же всяких "если" бывает, когда нужно придраться и покритиковать стандартное решение.

Если для cli всё же прописан в конфиге лимит и доступа к конфигу нет, то есть set_time_limit(0), который решает проблему.

А уж проблему с лимитами в nginx этот вариант решает даже на самом кривом сервере, ибо nginx вообще участия не принимает в запуске через cli!

 

Или вы пытаетесь сказать, что скрипты надо по крону через wget/curl запускать?

 

Я пытаюсь сказать, что во все дырки затычке, иногда стоит быть тише.
И выступат на родной варезопомойке с равными!

 

2 минуты назад, mysubcult сказал:

Нет, я же написал вроде выше, во всем файле всего около 2200 товара, сам начальный файл yml состоит из 220 тысяч строк, примерно. Нагрузка - да, когда скрипт выполняется - сайт, к примеру, вообще не доступен.

 

Только вскрытие! Только хардкор!

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, mysubcult сказал:

Dotrox, можно поподробнее?

Команду для крона надо прописывать в таком формате:

/usr/bin/php /path/to/script.php

/usr/bin/php - стандартный путь к интерпретатору, проверяется через which php (в Debian/Ubuntu), а дальше полный путь к скрипту.

В начале самого скрипта может понадобиться прописать это:

chdir(dirname(__FILE__));

для правильного определения текущей рабочей директории.

 

Но это всё к вопросу правильного запуска скриптов по крону, а тем временем, @sitecreator прав: по 2 часа на обработку - это не дело, тем более товаров всего 2 тысячи!

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, mysubcult сказал:

Нет, я же написал вроде выше, во всем файле всего около 2200 товара

 

это ерунда, а не кол-во. не более минуты нужно, как правило секундами дело обходится.

вообще непонятно, что там может происходить.  Может быть, закачка картинок идет гигабайтами?

 

В конце концов, вы же можете себе позволить поставить другой модуль? Поставьте и посмотрите, что будет. Может быть сразу и забудете про ваш кошмар.

  • +1 1

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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