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

Оцініть доопрацювання дії

Зараз механізм вибірки оновленних данних, в дії "Импорт продуктов из CMS ExtraParts", здійснюється запитом:
"SELECT * FROM `price` WHERE `post_date` >= '{$postDateFrom}' ORDER BY `price`.`id` ASC"
Де в змінній '{$postDateFrom}' використовується час останнього запуску дії.

Проблема в тому, - коли в `price` різко з'являється Велика кількість оновленних даних (наприклад 4.6 Мільйонів), дія бере в роботу великий массив данних (близько 12G), процесс обробки якого триває годинами (близьбко 5год.), що призводить до тайм-аутів або помилок в експортованих продуктах чи інших збоїв експорту данних ...

Необхіно допрцювати механізм вибірки оновленних данних:

1. Брати в бробку обмежену (наприклад вказану в налаштуваннях 100 000 рядків) кількість данних за один запуск дії, оброблювала цей массив і припиняти роботу дії.
При Наступному Запуску Дії, в обробку брати наступну кількість оновленних данних і так далі.

2. Якщо одночасно(паралельно) працюють дві і більше дії експорту - дані між ними мають Розподілятися, щоб не оброблювати кожною з дій одні і тіж дані.

Відповіді:

Уточніть будь ласка проблема в тому, що це все довго працює або в тому, що дає навантаження на сервер? Якщо в тому, що довго працює, ми можемо влити дані паралельно потоків так в 30-40, якщо в тому, що вантажить сервер, то вже інше питання.

Олександр Григорович писав/ла:
Брати в бробку обмежену (наприклад, вказано в налаштуваннях 100 000 рядків)

ну і якщо бити по 100к то Ви ніколи не наздоженете актуальний стан.
22.04.2024, 13:28
Оригінальний коментар доступний на версії: ru

Можливо також можна прискорити завантаження товарів, щоб це було в Х разів швидше на такому к-ві
22.04.2024, 13:29
Оригінальний коментар доступний на версії: ru

Так, проблема в тому, що дуже довго працює, і чим довше триває цей процес, тим вища ймовірність збою експорту.
Ресурсів сервера вистачає, тому я і запропонував експортувати частинами та паралельними діями
22.04.2024, 13:56
Оригінальний коментар доступний на версії: ru


Олександр Григорович писал/а:
тим вища ймовірність збою експорту

так а какие сбои вы наблюдаете сейчас в таких ситуациях?
22.04.2024, 13:58


Відділ турбот
OneBox production написав:

Олександр Григорович писав/ла:
тим вища ймовірність збою експорту

та а які збої ви спостерігаєте зараз у таких ситуаціях?

Найчастіше якщо експорт триває дуже довго, то продукти починає затирати бренди або створювати нові без бренду (змінна $brandid повертає порожнє значення...) - це створює великі проблеми.
22.04.2024, 14:11
Оригінальний коментар доступний на версії: ru

якщо проблема тільки в цьому, це фіксується за 1ч доробки.
22.04.2024, 14:26
Оригінальний коментар доступний на версії: ru

Якщо є рішення як прискорити експорт, що дозволить успішно заливати таку кількість і при цьому позбавитися втрати бренду, то виставляйте рахунок.
22.04.2024, 14:34
Оригінальний коментар доступний на версії: ru

це рішення дозволить запам'ятати весь список брендів і шукати їх з кешу, це також трохи прискорить імпорт але не думаю що глобально. Давайте спробуємо, виставлю рахунок
22.04.2024, 15:30
Оригінальний коментар доступний на версії: ru


Відділ турбот
OneBox production написав:
це рішення дозволить запам'ятати весь список брендів і шукати їх з кешу, це також трохи прискорить імпорт але не думаю що глобально. Давайте спробуємо, виставлю рахунок

Одного рішення брати бренд із Кеша буде недостатньо, я перевіряв.
Повністю відключав у класі метод отримання бренду, його оновлення - прискорює, але недостатньо.
Лити в кілька потоків вдасться реалізувати?
22.04.2024, 16:08
Оригінальний коментар доступний на версії: ru

Начхати на швидкість, якщо за підсумком все заллє нормально. Якщо лити кілька потоків ми можемо сильно навантажити зовнішню базу і свою.
22.04.2024, 16:32
Оригінальний коментар доступний на версії: ru

Можемо зробити по-іншому, я роблю щоб Ваше завантаження 4 лям записів працювало наприклад годину, після Ви оплачуєте за витраченим часом.
22.04.2024, 16:33
Оригінальний коментар доступний на версії: ru


Відділ турбот
OneBox production написав:
Можемо зробити по-іншому, я роблю щоб Ваше завантаження 4 лям записів працювало наприклад годину, після Ви оплачуєте за витраченим часом.

Згоден, довше гадатимемо, по ходу справи розберетеся.
Робіть за фактом оплачу.
22.04.2024, 16:38
Оригінальний коментар доступний на версії: ru


Відділ турбот
OneBox production написав:
Можемо зробити по-іншому, я роблю щоб Ваше завантаження 4 лям записів працювало наприклад годину, після Ви оплачуєте за витраченим часом.

Добридень.
Є якісь просування за завданням?
09.05.2024, 13:44
Оригінальний коментар доступний на версії: ru

Добридень. Я відкотив усі Ваші зміни і додав їх у вигляді налаштувань + свої оптимізації зашив туди і включив їх відразу. При перших тестах список з 1к товарів завантажувався близько 6 сек, зараз близько 2-3 (з урахуванням імпорту категорій, який завжди з'їдає близько секунди на старті дії).
Список зі 100к записів завантажується близько 130-150 с, тобто. зазначені 4 мільйони записів прилетять приблизно за півтори-дві години. Тобто. дія стала працювати у кілька разів швидше.
В даний момент витрачено 3год, якщо хочете можемо продовжити і зробити вивантаження 100к записів приблизно за хвилину (тобто ще в 2 рази швидше, я думаю це можливо), але там вже буде складніше так як базові оптимізації я виконав, далі вже доведеться аналізувати запити і кожна секунда даватиметься трохи складніше.
23.05.2024, 16:36
Оригінальний коментар доступний на версії: ru

Олександр Григорович
Support EP
Залишіть повідомлення в цій темі і відкриються контакти користувача
Добридень. Поки робив звіт за результатами доопрацювання, кілька разів вимк./вкл. дія імпорту і все дійсно запрацювало, 3112663 записів за 97 хв. - Відмінний показник.
Дякую Дмитру! Чекаю рахунок.
Але є й проблеми:
- під час імпорту чомусь деяким продуктам переписує значення unsyncable з 0 на 1 - це впливає на подальший імпорт у BOX чи експорт в OpenCart?
- поточна дія імпортуючи виробників, записує їх cat.id (ExtraParts) у поле shopbrand.code1c (BOX), це призводить до конфлікту експорту в опенкарт, описаному в https://1b.app/ru/forum/integrations-with-online -stores/18246-konflikt-u-roboti-dvoh-dodatkiv/ - це обов'язково робити?
чи як ще можна вирішити конфлікт?
25.05.2024, 17:56
Оригінальний коментар доступний на версії: ru


Олександр Григорович писав/ла:
- під час імпорту чомусь деяким продуктам переписує значення unsyncable з 0 на 1 - це впливає на подальший імпорт у BOX чи експорт в OpenCart?

1. Таке може бути якщо в процесі оновлення відбулася якась помилка. Спробуйте зберегти товар ручками, чи окей з ним?
2. Ви щось плутаєте, ймовірно це робить дію, що імпортує бренди (окреме). Ви можете його вимкнути, якщо цього робити не потрібно
27.05.2024, 10:52
Оригінальний коментар доступний на версії: ru

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