1b.app
Скопійоване посилання -

Неправильно відображає статус у процесі (у списку інший) і не списало товар, хоча "типу" перейшло на етап

1. Ось процес https://baza.cn.ua/admin/customorder/issue/23224/edit/
Показує ось таке марення https://prnt.sc/urq03m
Тобто з історії етапів показує "Йду на відправку"
Насправді типу показує що на етапі "Передано в службу доставки"
Цього бути за логікою не повинно це якась маячня виходить
2. Припускаю, що проблема вийшла через те, що на етапі "Передано в службу доставки" йде переклад підзадач в інший етап і там десь була помилка + перекладали на етап не з ПК версії, а з МП (тобто можливо баг і там , баг виведення помилки)
Так ось з трьох підзадач виявилося що проблемний це ось цей https://baza.cn.ua/admin/customorder/order/23261/edit/
У ньому з історії показує, що він знаходиться на етапі "На відправку", але якщо подивитися по списку процесів, то він знаходиться на етапі "Віконано".
Ось https://baza.cn.ua/admin/customorder/order/?filtershowprocess=&filterdeliver...
Оригінальне питання доступне на версії: ru

Відповіді:

Загалом проблема в принципі очевидна.
Це відбувається коли mysql не встигає обробити швидко запити і блокує таблиці, в ці моменти він дає помилку DEADLOCK або подібне до has gone away. І частина даних (на кшталт історія переходу статусу) можуть просто не вставитися в БД.
Вирішується двома шляхами
1) підвищення потужності сервера
2) включення безпечного режиму MYSQL, який видасть тобі на екран в особу помилку, якщо якась із потрібних йому таблиць заблокована
на даний момент я тобі ввімкнув пункт 2
02.10.2020, 17:16
Оригінальний коментар доступний на версії: ru

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

Устименко Ігор OneBox CTO написав:
Загалом проблема в принципі очевидна. Це відбувається коли mysql не встигає обробити швидко запити і блокує таблиці, в ці моменти він дає помилку DEADLOCK або подібне до has gone away. І частина даних (на кшталт історія переходу статусу) можуть просто не вставитися в БД. Вирішується 2ма шляхами 1) підвищення потужності сервера 2) включення безпечного режиму MYSQL який видасть тобі на екран в особу помилку якщо якась із потрібних йому таблиць заблокована на даний момент я тобі ввімкнув пункт 2

1. Що потрібно підвищувати на сервері (оперативку, процесор) ?
2. Виходити у мене якісь складні бізнес-процеси (перевести підзавдання в потрібний статуси і по підзавданням відправити статус у розетку) що сервер не може їх відпрацювати до кінця?
3. Чому не вистачило потужності списати товар, але вистачило перевести на фінішний статус, при тому що це останнє, що має зробити система?
4. Чому виникла проблема щодо процесу, у якого підпроцесів було 3 штуки, але раніше не виникала по процесу, у якого було 14 підпроцесів?
02.10.2020, 18:56
Оригінальний коментар доступний на версії: ru

1. Я не займаюся безкоштовною аналітикою твого сервера, щоб відповідати на це питання
2. Ні не думаю
3. Таблиця могла бути заблокована іншим процесом (у тлі наприклад кроном)
4. Немає різниці скільки підпроцесів
05.10.2020, 09:15
Оригінальний коментар доступний на версії: ru

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

Устименко Ігор OneBox CTO написав:
3. Таблиця могла бути заблокована іншим процесом (у тлі наприклад кроном)

Якщо це так, то це дуже схоже на баг, як на мене якщо є з системою процедури блокуючі запис або повністю таблиці, то інші процедури повинні перед апдетом спочатку уточнити чи не заблокований запис або таблиця і вже після цього проводити свою роботу (при цьому також блокувати запис або таблицю)
А тут виходити так що йде шматок коду, в ньому потрібно щось апдейтити, процедура отримала відмову від БД, і потім, ну і добре піду далі, переведу в статус виконано, мені пофіг що база дала відмову, моє завдання перейти в статус виконано
Наскільки я пам'ятаю ви не використовували особливо ніде принцип блокування, ви писали як код "хто останній того і тапки".
Або я не правильно міркую і не правильно тебе зрозумів (просто в мене зараз баг висити виходить статус історії один, в реальності інший і хто це виправлятиме мені незрозуміло)?
05.10.2020, 10:54
Оригінальний коментар доступний на версії: ru


Купріян Владислав Валерійович
Baza.cn.ua / Integrator (FOP Kupriyan) написав:
Устименко Ігор OneBox CTO написав:3. Таблиця могла бути заблокована іншим процесом (у фоні наприклад кроном) Якщо це так, то це дуже схоже на баг, як на мене якщо є з системою процедури блокуючі запис або повністю таблиці то інші процедури повинні перед апдетом спочатку уточнити чи не заблокований запис або таблиця і вже після цього проводити свою роботу (при цьому також блокувати запис або таблицю) А тут виходити так що йде шматок коду, в ньому потрібно щось апдейтить, процедура отримала відмову від БД, і потім, ну і добре піду далі, переведу в статус виконано, мені пофіг що база дала відмову, моє завдання перейти в статус виконаноНаскільки я пам'ятаю ви не використовували особливо ніде принцип блокування, ви писали на кшталт код "хто останній того і тапки". Або я не правильно міркую і не правильно тебе зрозумів (просто у мене зараз баг висити виходить статус історії один, в реальності інший і хто це виправлятиме мені незрозуміло)?

Твоя теорія не вірна. Влад я не готовий сидіти і навчати тебе, що таке транзакції MYSQL + LOCK таблиць.
05.10.2020, 10:56
Оригінальний коментар доступний на версії: ru

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

Устименко Ігор OneBox CTO написав:
Купріян Владислав ВалерійовичBaza.cn.ua / Integrator (FOP Kupriyan) написав:Устименко Ігор OneBox CTO написав:3. Таблиця могла бути заблокована іншим процесом (у фоні наприклад кроном) Якщо це так, то це дуже схоже на баг, як на мене якщо є з системою процедури блокуючі запис або повністю таблиці то інші процедури повинні перед апдетом спочатку уточнити чи не заблокований запис або таблиця і вже після цього проводити свою роботу (при цьому також блокувати запис або таблицю) А тут виходити так що йде шматок коду, в ньому потрібно щось апдейтить, процедура отримала відмову від БД, і потім, ну і добре піду далі, переведу в статус виконано, мені пофіг що база дала відмову, моє завдання перейти в статус виконаноНаскільки я пам'ятаю ви не використовували особливо ніде принцип блокування, ви писали на кшталт код "хто останній того і тапки". Або я не правильно міркую і не правильно тебе зрозумів (просто у мене зараз баг висити виходить статус історії один, насправді інший і хто це виправлятиме мені незрозуміло) ?Твоя теорія не вірна. Влад я не готовий сидіти і навчати тебе, що таке транзакції MYSQL + LOCK таблиць.

Ігорю, я також не готовий вивчати, мені це на даний момент не потрібно, мені потрібно, щоб система працювала стабільно, поки виникають речі які лякають і не піддаються ніякій адекватній логіці (база виходить живе своїм життям, менеджер який тисне кнопку в іншій виходить реальності ).
Поки мені незрозуміло в чому проблема спочатку ти говорив, що сервер, тепер блокування таблиці (як на мене це не пов'язані речі, глобально)
Ти можеш мені конкретно сказати що у тебе проблема в цьому завданні з блокуванням таблиці, що б вирішити цю проблему потрібно .... або що у тебе поганий сервер, мало оперативи (далі я тестуватиму сервер і спробую отримати ще раз цю помилку і потім буду писати на хостера, щоб тестово мені збільшили параметри яких не вистачає, як минулого разу, коли ти стверджував, що потрібно додавати оперативність) ?
05.10.2020, 11:14
Оригінальний коментар доступний на версії: ru

Зв'яжі те що я написав і даси відповідь на своє запитання
Будь-яка транзакція в БД блокує таблицю, і період блокування залежить від потужності сервера, чим він потужніший тим швидше виконає операцію і розблокує таблицю і шанс потрапити на LOCK буде меншим.
Так зрозуміліше?
05.10.2020, 11:32
Оригінальний коментар доступний на версії: ru

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

Устименко Ігор OneBox CTO написав:
Будь-яка транзакція в БД блокує таблицю, і період блокування залежить від потужності сервера, чим він потужніший тим швидше виконає операцію і розблокує таблицю і шанс потрапити на LOCK буде менше. Так зрозуміліше?

так, цілком
Чому тоді дія не перевірила заблокований запис чи ні?
05.10.2020, 11:59
Оригінальний коментар доступний на версії: ru


Купріян Владислав Валерійович
Baza.cn.ua / Integrator (FOP Kupriyan) написав:
Устименко Ігор OneBox CTO написав: Зв'яжи те, що я написав і відповиш на своє запитання Будь-яка транзакція в БД блокує таблицю, і період блокування залежить від потужності сервера, чим він потужніший тим швидше виконає операцію і розблокує таблицю і шанс потрапити на LOCK буде менше . Так зрозуміліше? Так, цілком Чому тоді дія не перевірила заблокований запис чи ні?

Якщо ти будеш стукати в таблицю перед кожним запитом і перевіряти LOCK вона чи ні, то кількість запитів зросте в 1000 разів.
05.10.2020, 13:31
Оригінальний коментар доступний на версії: ru

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

Устименко Ігор OneBox CTO написав:
Купріян Владислав Валерійович чим він потужніший тим швидше виконає операцію і розблокує таблицю і шанс потрапити на LOCK буде меншим. Так зрозуміліше? Так, цілком Чому тоді дія не перевірила заблокований запис чи ні? Якщо ти стукатимешся в таблицю перед кожним запитом і перевіряти LOCK вона чи ні, то кількість запитів зросте в 1000 разів.

Я чудово розумію що перевірка блокування це шматок коду
Я брав участь у розробці ПЗ де цьому приділяли багато уваги і тому мене здивувало чому в OneBox це не робить, я також розумів що це зменшує швидкість обробки і не є критичним, при тому що є логування дій (оскільки це не зовсім облікова системі, в облікових це критичніше)
Загалом я правильно розумію що те, що товар не списало, але перевело на статус на якому воно має списати це суто моя проблема (або налаштування бізнес процесу або сервера)?
05.10.2020, 16:55
Оригінальний коментар доступний на версії: ru


Купріян Владислав Валерійович
Baza.cn.ua / Integrator (FOP Kupriyan) написав:
Устименко Ігор OneBox CTO написав: Купріян Владислав Валерійович і період блокування залежить від потужності сервера, чим він потужніший тим швидше виконає операцію і розблокує таблицю і шанс потрапити на LOCK буде меншим. Так зрозуміліше? Так, цілком Чому тоді дія не перевірила заблокована запис чи ні ? у розробці ПЗ де цьому приділяли багато уваги і тому мене здивувало чому в OneBox це не робить, я також розумів що це зменшує швидкість обробки і не є критичним, при тому що є логування дій (оскільки це не зовсім облікова системі, в облікових це більш критично) Загалом я правильно розумію що те, що товар не списало, але перевело на статус на якому воно має списати це суто моя проблема (або налаштування бізнес процесу або сервера)?

Розумій як хочеш - я поратися з тобою як з дитиною не збираюся та й інші теж
я ще в 1-му коментарі написав тобі що зроблено для вирішення проблеми і що буде
решта це суто твоя цікавість яка займає мій час
05.10.2020, 23:58
Оригінальний коментар доступний на версії: ru

Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan)
У цій задачі https://baza.cn.ua/admin/customorder/issue/23224/edit/
Неправильно відображається статус https://prnt.sc/v1m3in
Можете виправити?
18.10.2020, 13:31
Оригінальний коментар доступний на версії: ru

ні ми не займаємося таким безкоштовно
18.10.2020, 16:45
Оригінальний коментар доступний на версії: ru

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

Устименко Ігор OneBox CTO написав:
ні ми не займаємося таким безкоштовно

Ну так це ж баг те що система не правильно відображає в історії чи це нормально?
18.10.2020, 20:57
Оригінальний коментар доступний на версії: ru


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

Устименко Ігор OneBox CTO написав:
ні ми не займаємося таким безкоштовно

Ну так це ж баг те що система не правильно відображає в історії чи це нормально?

тобі вже дали відповідь чому так
ти можеш вирішити це питання самостійно - зробивши повторний перехід на етап
18.10.2020, 20:59
Оригінальний коментар доступний на версії: ru

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

Устименко Ігор OneBox CTO написав:

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

Устименко Ігор OneBox CTO написав:
ні ми не займаємося таким безкоштовно

Ну так це ж баг те що система не правильно відображає в історії чи це нормально?

тобі вже дали відповідь чому так
ти можеш вирішити це питання самостійно - зробивши повторний перехід на етап

Це "ручник" виходить щоб мені це зробити потрібно відключати дії і т.д.
Плюс я не впевнений, що це в одному процесі така проблема
Гаразд я зроблю але мені здається це повинні були зробити ви, як наслідок бага
18.10.2020, 22:23
Оригінальний коментар доступний на версії: ru

Будь ласка, приєднуйтесь до діалогу. Якщо вам є що сказати – будь ласка, напишіть коментар. Для входу потрібний мобільний телефон та смс-код для ідентифікації. Увійти та написати коментар