1b.app
Скопирована ссылка -

Перестал работать минутный крон

Тут https://baza.cn.ua/admin/shop/statistic/
Минутный крон отрабатывал все время за 1 минуту, а тут замер в 2021-01-25 18:22:13
Уже прошло больше 25 минут и он не работает
1. Прошу решить проблему
2. Объяснить почему это произошло

Ответы:

Это происходит когда внешние сервисы соединение не разрывают но данные перестают отдавать.
Вот процесс (крон) соединен с внешним сервером и соединение в состоянии "Установлено" ESTABLISHED

php 19222 bazacnua 9u IPv4 166670705 0t0 TCP none:47926->ec2-52-214-51-78.eu-west-1.compute.amazonaws.com:https (ESTABLISHED)

Но данные не передаются

clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450225, tv_nsec=785639629}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450225, tv_nsec=785759689}) = 0
poll([{fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450225, tv_nsec=786256316}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450225, tv_nsec=786320364}) = 0
poll([{fd=9, events=POLLIN}], 1, 1000) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450226, tv_nsec=787662606}) = 0
poll([{fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450226, tv_nsec=788096833}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450226, tv_nsec=788179420}) = 0
poll([{fd=9, events=POLLIN}], 1, 1000) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450227, tv_nsec=789450028}) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=5450227, tv_nsec=789555074}) = 0
poll([{fd=9, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
26.01.2021, 01:29

Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan)
Ок, причину по сути нашли теперь осталось разобраться:
1. Кто в этом виноват (можете дать детальный пример, а то это "eu-west-1.compute.amazonaws.com" мне не дает никакой информации, хочу разобраться это хостер или какой-то маркетплейс, скажите хотя бы какой это процесс в действиях на минутном кроне, предполагаю что это "rozetka_auto_action_import_orders" так как ровно в то время когда 19:22 поступил с розетки заказ и все "остановилось") ?

2. Как можно сделать так что бы подобные внешние вещи не ломали работу минутный действий ?
26.01.2021, 10:59

1. Все, что нам известно -это внешняя интеграция. Все, что настроено в системе настроено Вами.
В каких ДЦ и с помощью чего компании, строят свою IT инфраструктуру нам не известно и знать не зачем.
Мы занимается нашим продуктом.

2. Если не использовать интеграции с внешними сервисами, то и ломаться по этим причинам не будет.
Но суть как раз в том, что мы говорим о работе (заказ пришел с "Розетки") с внешним ресурсом.
Работая с внешним ресурсом, мы работаем с программным продуктом, который создан и поддерживается
людьми и там также возможны как технические проблемы (большая нагрузка на ресурс, сервера, сети....) ,
так и человеческий фактор (ошибки, которые проявляются при совпадении определенных факторов).
Поэтому готового решения у нас нет и сомневаюсь, что у кого то есть.
26.01.2021, 15:14

Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan)

Тасун Сергей Владимирович
Сотрудник писал/а:
1. Все, что нам известно -это внешняя интеграция. Все, что настроено в системе настроено Вами.
В каких ДЦ и с помощью чего компании, строят свою IT инфраструктуру нам не известно и знать не зачем.
Мы занимается нашим продуктом.

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


Тасун Сергей Владимирович
Сотрудник писал/а:
2. Если не использовать интеграции с внешними сервисами, то и ломаться по этим причинам не будет.
Но суть как раз в том, что мы говорим о работе (заказ пришел с "Розетки") с внешним ресурсом.
Работая с внешним ресурсом, мы работаем с программным продуктом, который создан и поддерживается
людьми и там также возможны как технические проблемы (большая нагрузка на ресурс, сервера, сети....) ,
так и человеческий фактор (ошибки, которые проявляются при совпадении определенных факторов).
Поэтому готового решения у нас нет и сомневаюсь, что у кого то есть.

Странная у Вас позиция "моя хата скраю"
Плюс, что то я не пойму логики работы вашей системы, мне казалось что каждый "создатель" кода, должен побеспокоиться что бы его код продолжал работа при всех исключениях и вариантах, а вашем случае выходит кто то передал "корявый" xml или json ответ и ваш комбайн остановился
Или я совсем не правильно понял ситуацию, если так то прошу перефразировать ?
26.01.2021, 18:10


Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan) писал/а:
Вы как то очень сильно обобщаете проблему, чувствуется нежелание разбираться в ней, я понимаю вашу боль

Я не обобщаю проблемы, компании всегда прячут IT инфраструктуру, дабы уменьшить количество
не приятных моментов для себя.
Вы попросили обьяснить почему это произошло, я вам показал,
что произошло и почему перестало работать.
Но вы остались недовольны и уже требуете, что бы вам выдали "виновника", потому что, цитирую
"а то это "eu-west-1.compute.amazonaws.com" мне не дает никакой информации, хочу разобраться..."
Хотите разобраться вы, но почему то просите, что бы в этом разобрались мы, странный подход, не находите?
Данный ресурс это api.privatbank.ua

И про боль - У нас ничего не болит, а если вы что то чувствуете, то это Ваша боль.


Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan) писал/а:
Странная у Вас позиция "моя хата скраю"
Или я совсем не правильно понял ситуацию, если так то прошу перефразировать ?

Вы поняли, ровно так как вы поняли.
Позиция у нас такая, что, в нашей системе есть большое количество интеграций с внешними ресурсами, которые
работают согласно документации, предоставленной этими ресурсами.
И следить за тем на сколько корректно, в данную минуту, работает API внешнего ресурса
и вообще доступен ли этот ресурс, никак не входит в зону ответственности нашей компании.
При официальных изменениях в API внешнего ресурса, мы вносим изменения в нашем продукте.
27.01.2021, 01:15

Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan)

Тасун Сергей Владимирович
Сотрудник писал/а:
Данный ресурс это api.privatbank.ua


Спасибо


Тасун Сергей Владимирович
Сотрудник писал/а:
Вы поняли, ровно так как вы поняли.
Позиция у нас такая, что, в нашей системе есть большое количество интеграций с внешними ресурсами, которые
работают согласно документации, предоставленной этими ресурсами.
И следить за тем на сколько корректно, в данную минуту, работает API внешнего ресурса
и вообще доступен ли этот ресурс, никак не входит в зону ответственности нашей компании.
При официальных изменениях в API внешнего ресурса, мы вносим изменения в нашем продукте.

Ок, возможно вы меня не правильно поняли, попробую абстрагироваться и привести пример
Представьте что ваш продукт OneBox это семейный врач у которого есть план принимать пациентов
Вот он должен принять определенное количество пациентов в минуту, час, день
И вот получатся так что к врачу пришел какой то нестандартный пациент (api.privatbank.ua) и начал ему рассказывать и требовать вещи которые не совсем относятся к специфике врача в результате у врача "поехала крыша" и он удалился с рабочего места на пару часов.
В результате все пациенты не смогли решить свои вопросы (проблемы)
Так вот мне кажется позиция врача в данном примере не очень профессиональна, так как он не должен выпадать с рабочего процесса из-за нестандартного пациента, он просто должен выгнать его или отправить куда подальше и дальше продолжить работу над выполнением своего плана.
Если вы меня правильно поняли, то хотелось бы услышать ваше мнение и закрыть задачу
27.01.2021, 16:12

Поясняю на вашем примере.
Это пациент (api.privatbank.ua) приходит постоянно и все с ним хорошо, обычный пациент.
Но сегодня он решил, рассказать врачу свою новую проблему, семейный врач, должен его послушать,
что бы понять, что сегодня этот пациент стал не стандартным и перенаправить пациента к другому специалисту.
Вот тут и теряются эти пару часов. (в жизни кстати именно так все и происходит... как пример поход к зубному)

А теперь к нашему случаю.
Логика работы такова: мы стучимся в сторонний сервис, передаем ему регистрационные данные,
что бы сервис знал кто пришел и зачем, сервис данные принимает, анализирует и отдает ответ,
после чего соединение (дверь) закрывает.
Но в нашем случае, сервис соединеие (двери) открыл, все данные принял, и ушел за ответом.... соединение (дверь) не закрыл.
Вот мы стоим и ждем в надежде, что нам выдадут то что мы просили.

Вы можете спросить "Зачем мы так долго ждем", на это могу ответить, что в документации к стороннему сервису (API),
ничего не сказано о том, что такая ситуация в принципе возможна.
И что если в течении такого то времени ответа нет, то ждать не нужно.

Вот собственно и все.
27.01.2021, 16:46

Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan)

Тасун Сергей Владимирович
Сотрудник писал/а:
Поясняю на вашем примере.
Это пациент (api.privatbank.ua) приходит постоянно и все с ним хорошо, обычный пациент.
Но сегодня он решил, рассказать врачу свою новую проблему, семейный врач, должен его послушать,
что бы понять, что сегодня этот пациент стал не стандартным и перенаправить пациента к другому специалисту.
Вот тут и теряются эти пару часов. (в жизни кстати именно так все и происходит... как пример поход к зубному)

А теперь к нашему случаю.
Логика работы такова: мы стучимся в сторонний сервис, передаем ему регистрационные данные,
что бы сервис знал кто пришел и зачем, сервис данные принимает, анализирует и отдает ответ,
после чего соединение (дверь) закрывает.
Но в нашем случае, сервис соединеие (двери) открыл, все данные принял, и ушел за ответом.... соединение (дверь) не закрыл.
Вот мы стоим и ждем в надежде, что нам выдадут то что мы просили.

Вы можете спросить "Зачем мы так долго ждем", на это могу ответить, что в документации к стороннему сервису (API),
ничего не сказано о том, что такая ситуация в принципе возможна.
И что если в течении такого то времени ответа нет, то ждать не нужно.

Вот собственно и все.


Спасибо за детальный и понятный ответ!
Как по мне долгое ожидание это ошибка (должен быть какой то таймаут), но судя с вашего ответа вы поступаете лояльно, при этом данная лояльность вредить другим процессам, но тут вопрос логики
27.01.2021, 20:59

Пожалуйста, присоединяйтесь к диалогу. Если вам есть что сказать - пожалуйста, напишите комментарий. Для входа потребуется мобильный телефон и смс-код для идентификации. Войти и написать комментарий