Ми використовуємо файли cookies для оптимізації контенту та швидкодії сайту. Продовжуючи відвідування сайту, ви погоджуєтесь на використання файлів cookies.
Зараз механізм вибірки оновленних данних, в дії "Импорт продуктов из CMS ExtraParts", здійснюється запитом:
"SELECT * FROM `price` WHERE `post_date` >= '{$postDateFrom}' ORDER BY `price`.`id` ASC"
Де в змінній '{$postDateFrom}' використовується час останнього запуску дії.
Проблема в тому, - коли в `price` різко з'являється Велика кількість оновленних даних (наприклад 4.6 Мільйонів), дія бере в роботу великий массив данних (близько 12G), процесс обробки якого триває годинами (близьбко 5год.), що призводить до тайм-аутів або помилок в експортованих продуктах чи інших збоїв експорту данних ...
Необхіно допрцювати механізм вибірки оновленних данних:
1. Брати в бробку обмежену (наприклад вказану в налаштуваннях 100 000 рядків) кількість данних за один запуск дії, оброблювала цей массив і припиняти роботу дії.
При Наступному Запуску Дії, в обробку брати наступну кількість оновленних данних і так далі.
2. Якщо одночасно(паралельно) працюють дві і більше дії експорту - дані між ними мають Розподілятися, щоб не оброблювати кожною з дій одні і тіж дані.
Зараз механізм вибірки оновленних данних, в дії "Импорт продуктов из 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к то Ви ніколи не наздоженете актуальний стан.
Уточніть будь ласка проблема в тому, що це все довго працює або в тому, що дає навантаження на сервер? Якщо в тому, що довго працює, ми можемо влити дані паралельно потоків так в 30-40, якщо в тому, що вантажить сервер, то вже інше питання.
[quote]
Олександр Григорович писав/ла:
Брати в бробку обмежену (наприклад, вказано в налаштуваннях 100 000 рядків)
[/quote]
ну і якщо бити по 100к то Ви ніколи не наздоженете актуальний стан.
Так, проблема в тому, що дуже довго працює, і чим довше триває цей процес, тим вища ймовірність збою експорту. Ресурсів сервера вистачає, тому я і запропонував експортувати частинами та паралельними діями
Так, проблема в тому, що дуже довго працює, і чим довше триває цей процес, тим вища ймовірність збою експорту.
Ресурсів сервера вистачає, тому я і запропонував експортувати частинами та паралельними діями
Олександр Григорович писав/ла: тим вища ймовірність збою експорту
та а які збої ви спостерігаєте зараз у таких ситуаціях?
Найчастіше якщо експорт триває дуже довго, то продукти починає затирати бренди або створювати нові без бренду (змінна $brandid повертає порожнє значення...) - це створює великі проблеми.
[quote]
Відділ турбот
OneBox production написав:
[quote]
Олександр Григорович писав/ла:
тим вища ймовірність збою експорту
[/quote]
та а які збої ви спостерігаєте зараз у таких ситуаціях?
[/quote]
Найчастіше якщо експорт триває дуже довго, то продукти починає затирати бренди або створювати нові без бренду (змінна $brandid повертає порожнє значення...) - це створює великі проблеми.
це рішення дозволить запам'ятати весь список брендів і шукати їх з кешу, це також трохи прискорить імпорт але не думаю що глобально. Давайте спробуємо, виставлю рахунок
це рішення дозволить запам'ятати весь список брендів і шукати їх з кешу, це також трохи прискорить імпорт але не думаю що глобально. Давайте спробуємо, виставлю рахунок
Відділ турбот OneBox production написав: це рішення дозволить запам'ятати весь список брендів і шукати їх з кешу, це також трохи прискорить імпорт але не думаю що глобально. Давайте спробуємо, виставлю рахунок
Одного рішення брати бренд із Кеша буде недостатньо, я перевіряв. Повністю відключав у класі метод отримання бренду, його оновлення - прискорює, але недостатньо. Лити в кілька потоків вдасться реалізувати?
[quote]
Відділ турбот
OneBox production написав:
це рішення дозволить запам'ятати весь список брендів і шукати їх з кешу, це також трохи прискорить імпорт але не думаю що глобально. Давайте спробуємо, виставлю рахунок
[/quote]
Одного рішення брати бренд із Кеша буде недостатньо, я перевіряв.
Повністю відключав у класі метод отримання бренду, його оновлення - прискорює, але недостатньо.
Лити в кілька потоків вдасться реалізувати?
Відділ турбот OneBox production написав: Можемо зробити по-іншому, я роблю щоб Ваше завантаження 4 лям записів працювало наприклад годину, після Ви оплачуєте за витраченим часом.
Згоден, довше гадатимемо, по ходу справи розберетеся. Робіть за фактом оплачу.
[quote]
Відділ турбот
OneBox production написав:
Можемо зробити по-іншому, я роблю щоб Ваше завантаження 4 лям записів працювало наприклад годину, після Ви оплачуєте за витраченим часом.
[/quote]
Згоден, довше гадатимемо, по ходу справи розберетеся.
Робіть за фактом оплачу.
Будь ласка, приєднуйтесь до діалогу. Якщо вам є що сказати – будь ласка, напишіть коментар. Для входу потрібний мобільний телефон та смс-код для ідентифікації.
Увійти та написати коментар