Проблема
Make рахує кожну операцію модуля. Коли сценарій перебирає сотні оголошень через ітератор і для кожного робить запит до бази, кредити тануть дуже швидко.
Де губились кредити
Найдорожчими були три місця: перевірка дублікатів, підрахунок ринкової ціни і фільтрація. Кожне з них було окремим модулем, який запускався для кожного оголошення.
-- одна функція замість трьох модулів на кожне авто
select * from pick_deals(:batch);
Логіка в SQL
Тепер Make передає в базу весь пакет оголошень одним запитом. Функція в Supabase сама відкидає дублікати, рахує середню ціну і повертає тільки кандидатів.
Make має бути диригентом, а не калькулятором.
Результат
Один запуск моніторингу: було 158 кредитів, стало 39. А якщо в жодного користувача немає активних фільтрів, моніторинг узагалі не запускається і не витрачає кредитів.
Коли не варто
Якщо сценарій обробляє кілька записів на день, переписувати його в SQL немає сенсу: економія буде меншою за час розробки.
