208 похожих чатов

Ребят, всем привет! Есть у кого идеи, почему так может быть? У

меня есть агенты, которые запускают экспорт на торговые площадки. Условно-есть модуль, у которого есть 5 профилей, каждый из которых запускается через определенный интервал.
На серваке работает крон, работает раз в минуту.
Обращается к файлу cron_events.php, внутри которого-
CAgent::CheckAgents();
CEvent::CheckEvents();

ВНАЧАЛЕ файла я ставлю лог-типо старт , в конце файла-Стоп.
В файле модуля, который делает выгрузку-я поставил лог по шагам-на каждый шаг выгрузки-у меня идет логгирование.
И в чем прикол-в теории как должно быть-в логе должен идти
START
--STEP_EXPORT профиля, или нескольких профилей ( если одновременно отрабатывают)
STOP

НО-в логах я иногда ловлю START 2 раза подряд, потом идет STOP, и после стопа-идет лог шага выгрузки, и после него-снова STOP.

Как будто бы у меня отработал крон, пошло обращение к файлу, но в моменте проверки и исполнения агентов-он не успевает это сделать за минуту, и только через пару минут-он 'развисает', и выполняется.

Проблема в том-что выгрузка пошаговая, и периодически-у меня некоторые шаги повторяются по 2 раза, и в файлах выгрузки идут дубли

9 ответов

7 просмотров

Самое простое - сделать периодичность агента раз в 5 минут, а не раз в минуту) Посложнее - сделать какой-то флаг, запущен ли агент и проверять его на старте. Если запущен, выходить из метода, если нет - продолжать. Если выгрузка пакетная, то скрипт где-то сохраняет инфу, сколько он выгрузил и сколько осталось, так ведь? Можно посмотреть, как это работает и как раз использовать для проверки, что выгрузка ещё не завершена.

Dim-Dim Автор вопроса
Alexey Nazarov
Самое простое - сделать периодичность агента раз в...

в том то и дело, что это вроде как все реализовано. У нас висит агент check, у которого период-это период в профиле выгрузки. Как только время наступает-он запускает exec, в который передает id профиля и id шага, и шаг выполняется-а внутри шага идет генерация и запись в файл, после шага-если шаг НЕ последний-то ретёрнится снова агент exec, в котором тот же id профиля и шаг+1

Dim-Dim Автор вопроса
Alexey Nazarov
Самое простое - сделать периодичность агента раз в...

крон раз в минуту выполняется, не сам агент. Т.е в теории-да, возможна ситуация.-когда шаг выгрузки может длиться 5 минут, и эти 5 минут-крон будет обращаться к файлу с check агентами, ииии... а что тогда? У него же флаг выполнения стоит в этот момент ( у агента )-он просто пропускается, пока не закончится

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

Dim-Dim Автор вопроса
Александр Лырмин
Я бы сделал отдельный файл который запускал по кро...

вероятно, если не разберусь в причине-так и сделаю, поставлю хотя бы раз в 10 минут-чтоб наверняка

Dim Dim
вероятно, если не разберусь в причине-так и сделаю...

Зачем так часто грузить информацию на площадки?

Dim-Dim Автор вопроса
Александр Лырмин
Зачем так часто грузить информацию на площадки?

вы меня не так поняли-именно крон запускается раз в минуту, все агенты переведены на крон. Сам агент выгрузки на площадки-раз в 8 часов должен запускаться

Dim Dim
вы меня не так поняли-именно крон запускается раз ...

Время запуска стандартного файла крона не нужно увеличивать. Я написал про отдельный файл.

Dim-Dim Автор вопроса
Александр Лырмин
Время запуска стандартного файла крона не нужно ув...

я понял, в стандартном-убрать проверку и выполнение агентов мого модуля, сделать отдельный файл крона-где будут выполняться только они, и на него-уже раз в 10 минут поставить

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Реально в одиночку написать игровой движок на Си?
ㅤ (SVO)
11
Карта сайта