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

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


Recommended Posts

Здравствуйте. У меня тут проблема. Запустил я скрипт через 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

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


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
Надіслати
Поділитися на інших сайтах

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 користувачів

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

×
×
  • Створити...

Important Information

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