Налаштування парсера за розкладом (cron) для 1С-Бітрікс

Ми часто бачимо: сайт на Бітріксі з ручним оновленням цін та залишків — помилки, затримки, втрачені продажі. Одного разу до нас звернувся клієнт з каталогом з 15 000 товарів: ціни оновлювались раз на тиждень вручну через Excel. За місяць збитки від прострочених акцій склали 8% обороту. Разовий парси
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування парсера за розкладом (cron) для 1С-Бітрікс
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    751
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    872
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    791
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1153

Ми часто бачимо: сайт на Бітріксі з ручним оновленням цін та залишків — помилки, затримки, втрачені продажі. Одного разу до нас звернувся клієнт з каталогом з 15 000 товарів: ціни оновлювались раз на тиждень вручну через Excel. За місяць збитки від прострочених акцій склали 8% обороту. Разовий парсинг проблему не вирішує — потрібен автоматичний запуск за розкладом. Налаштування парсера за розкладом (cron) для 1С-Бітрікс — це ключове завдання для автоматизації оновлення даних. Ми підбираємо механізм (агенти Бітрікса vs системний cron), реалізуємо блокування паралельних запусків, налаштовуємо логування та алерти. Результат — дані оновлюються самі, без участі людини.

Як системний cron вирішує проблему оновлення даних?

Агенти (b_agent) — вбудований механізм Бітрікса. Вони працюють тільки коли на сайт заходить відвідувач і спрацьовує CAgent::CheckAgents(). При низькій відвідуваності агенти запізнюються. Режим точного запуску через cron вирішує проблему, але вимагає налаштування системного завдання. Наш досвід показує: для парсерів з частотою оновлення раз на 30 хвилин системний cron надійніший.

Системний cron — прямий виклик PHP-CLI. Жодної залежності від веб-сервера:

*/30 * * * * /usr/bin/php -f /var/www/site/local/scripts/parser_run.php >> /var/log/parser.log 2>&1 

Для важких парсерів (10 000+ позицій) системний cron кращий — немає лімітів PHP-FPM за часом виконання. Ми гарантуємо стабільність запуску в будь-який час, навіть якщо сайт не навантажений.

Чому ми рекомендуємо системний cron для важких парсерів?

У проєкті з 50 000 товарів і оновленням кожні 30 хвилин агенти не справлялись: при відвідуваності 200 осіб на день виконання зсувалось на 10-15 хвилин. Перехід на системний cron усунув затримки — оновлення стало точним до секунди. Вартість підтримки знизилась на 30% завдяки автоматизації.

Як захистити парсер від паралельних запусків?

Парсер виконується 25 хвилин, cron запускає наступний через 30 — два екземпляри не перетнуться. Але якщо скрипт завис на 35 хвилин? Потрібен захист. Використовуємо блокування через файл або Redis:

$lockFile = '/tmp/parser_' . md5($parserName) . '.lock'; if (file_exists($lockFile) && (time() - filemtime($lockFile)) < 3600) { exit('Already running'); } touch($lockFile); // ... робота парсера ... unlink($lockFile); 

Для розподілених систем (кілька серверів) — блокування через Redis: SET lock:parser NX EX 3600. Вартість помилки при паралельному запуску — дублікати даних і навантаження на сервер. Ми враховуємо це в кожному проєкті.

Агенти чи cron: що обрати? Порівняння

Критерій Агенти Бітрікса (b_agent) Системний cron
Залежність від трафіку Так Ні
Ліміт часу виконання Обмежений PHP-FPM (зазвичай 300 с) Немає обмежень (PHP-CLI)
Точність запуску ± кілька хвилин при низькому навантаженні ± секунда
Складність налаштування Вбудований, не потребує доступу до сервера Потребує SSH та права
Підходить для важких парсерів Умовно Так
Підтримка логування Через агентські методи Налаштовується окремо

Покрокове налаштування cron для парсера

  1. Визначте команду запуску — повний шлях до PHP та скрипту. Перевірте версію: which php.
  2. Налаштуйте логування — перенаправте stdout та stderr у файл з датою.
  3. Додайте завдання в crontab — crontab -e, вкажіть розклад і команду.
  4. Реалізуйте блокування — lock-файл або Redis.
  5. Протестуйте — виконайте команду вручну, перевірте логи.
  6. Налаштуйте алерти — надсилання сповіщень при помилках.

Цей алгоритм ми застосовуємо в кожному проєкті — він скорочує час налагодження на 40%.

Налаштування агентів Бітрікса для парсингу

Якщо все ж використовуємо агенти — реєструємо через CAgent::AddAgent():

CAgent::AddAgent( 'MyParserAgent::Run();', // функція-агент 'mymodule', // модуль 'N', // не точний 3600, // інтервал у секундах '', // дата першого запуску 'Y', // активний date('d.m.Y H:i:s', time() + 3600) // наступний запуск ); 

Агент повинен бути зареєстрований у include.php модуля або в init.php. Для продакшену рекомендуємо комбінувати з системним cron через документацію 1С-Бітрікс. Це дає максимальну гнучкість і точність.

Що дає структуроване логування?

Парсер без логів — чорна скринька. Мінімальна схема:

file_put_contents($logFile, date('[Y-m-d H:i:s] ') . $message . PHP_EOL, FILE_APPEND); 

Для продакшену — структуровані логи з рівнями (info/warning/error) і ротацією через logrotate. Алерт при помилці: якщо в логу за останній запуск є рядки з ERROR — надсилаємо email через \Bitrix\Main\Mail\Event. Це скорочує час реакції на збої та знижує витрати на підтримку вдвічі. Згідно з рекомендаціями Bitrix, такий моніторинг обов'язковий для критичних оновлень.

Що входить в роботу

  • Аудит поточного парсера або написання нового
  • Вибір та налаштування механізму запуску (cron/агенти)
  • Реалізація блокування паралельних запусків
  • Налаштування логування та алертів
  • Тестування розкладу та сценаріїв помилок
  • Документація по доступах та роботі парсера
  • Гарантія стабільності протягом тижня після запуску

Таймлайн робіт

Етап Термін
Налаштування системного cron або агента Бітрікса 1–2 години
Реалізація блокування паралельних запусків 1–2 години
Налаштування логування та алертів 2–4 години
Тестування розкладу 2–4 години

Разом: 6–12 годин. Вартість розраховується індивідуально — оцінимо ваш проєкт за один робочий день.

Отримайте консультацію з налаштування парсера — пишіть, ми підберемо оптимальне рішення під ваш бюджет. Залиште заявку — розповімо, як автоматизувати оновлення даних на вашому проєкті. Зв'яжіться з нами, щоб розпочати автоматизацію вже сьогодні.