Настройка отложенных функций (deferred functions) 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка отложенных функций (deferred functions) 1С-Битрикс
Простой
~1 день
Часто задаваемые вопросы

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

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1361
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    948
  • 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 Appointment Booking Widget for a Medical Center
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    833
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Пользователь нажимает «Оформить заказ» и видит спиннер 4 секунды — сервер синхронно отправляет три письма, пересчитывает бонусы, дёргает API доставки. Время простоя растёт, конверсия падает. Мы сталкиваемся с этим на каждом втором проекте с высокой нагрузкой. Deferred functions решают проблему: HTTP-ответ возвращается за 200 мс, а тяжёлые операции выполняются фоново, после закрытия соединения. Это снижает нагрузку на сервер и повышает удовлетворённость пользователей.

Какие проблемы решают deferred functions?

Синхронная обработка всех действий в запросе приводит к избыточному времени ожидания для клиента. Типичные операции, которые можно вынести: отправка email/SMS (200–500 мс), логирование в ELK или Sentry, инвалидация тегированного кеша, вызовы внешних API (CRM, службы доставки). Каждая такая операция увеличивает время ответа, а их сумма может достигать нескольких секунд. Deferred functions изолируют эти задачи, возвращая управление пользователю мгновенно.

Как работают deferred functions?

Начиная с актуальных версий PHP, ядро Битрикс поддерживает register_shutdown_function и собственный механизм через Bitrix\Main\Application::getInstance()->addBackgroundJob(). Суть: функция регистрируется и выполняется после fastcgi_finish_request() (для PHP-FPM) или после отправки ответа для Apache mod_php через register_shutdown_function. Разница критична: на PHP-FPM соединение сбрасывается до выполнения задачи, на mod_php — нет.

use Bitrix\Main\Application;

Application::getInstance()->addBackgroundJob(function () {
    // Код выполнится ПОСЛЕ отправки ответа клиенту
    \Bitrix\Main\Mail\Event::send([...]);
    // Логирование, вызов API, пересчёт данных
});

Критический нюанс: addBackgroundJob работает только при наличии fastcgi_finish_request. Проверяйте: function_exists('fastcgi_finish_request'). На Apache mod_php функция выполнится до отправки ответа.

Пошаговая настройка deferred functions

  1. Проверьте окружение. Выполните phpinfo() и найдите fastcgi_finish_request в разделе PHP-FPM. Если функция отсутствует, переключитесь на PHP-FPM или используйте cron.
  2. Определите тяжёлые операции. Профилируйте страницы с помощью встроенного профайлера Битрикс. Выявите блоки, которые занимают более 100 мс: отправка писем, логирование, вызовы API.
  3. Оберните их в addBackgroundJob. Для каждого обработчика события (например, OnSaleOrderSaved) замените синхронный вызов на фоновый.
  4. Настройте таймауты. В конфигурации пула PHP-FPM установите request_terminate_timeout=300, чтобы фоновые задачи не обрывались.
  5. Протестируйте. Замерьте время ответа до и после. Сравните с помощью ab или JMeter.

Для гарантированного выполнения на PHP-FPM также проверьте max_execution_time в php.ini — он должен быть не меньше. Рекомендуется мониторить логи на предмет преждевременных завершений.

Почему deferred functions лучше синхронной обработки?

Deferred functions сокращают время ответа пользователя в 3–5 раз. В одном проекте мы вынесли из синхронного потока отправку трёх писем и логирование — время выполнения заказа упало с 4,5 секунд до 0,3 секунды. Это напрямую влияет на конверсию: каждые 100 мс задержки снижают конверсию на 1%. Экономия на серверных мощностях достигает 40%.

Критерий Deferred Functions Очередь задач (Bitrix Queue) Cron
Время выполнения После ответа клиенту Асинхронно, параллельно По расписанию
Гарантия выполнения Нет (сбой PHP) Есть (повторные попытки) Есть (при правильной настройке)
Сложность настройки Низкая Средняя Высокая
Мониторинг Нет Встроенный Через логи

Deferred functions выигрывают по скорости внедрения и минимальной нагрузке на инфраструктуру. Если задача критична — используйте очередь.

Метрика До После
Время ответа (среднее) 4,5 с 0,3 с
Количество запросов в секунду 10 150
Использование CPU 80% 30%

Когда стоит использовать deferred functions?

  • Отправка email/SMS после оформления заказа — задержка 200–500 мс на каждое письмо
  • Логирование в файл или внешний сервис (ELK, Sentry)
  • Инвалидация тегированного кеша после обновления каталога
  • Вызовы внешних API: уведомление CRM, обновление складского сервиса
  • Переиндексация элемента после изменения

Типичные ошибки при настройке

  • Использование deferred functions на Apache mod_php без проверки fastcgi_finish_request — функция выполняется синхронно.
  • Слишком короткий request_terminate_timeout — фоновые задачи не успевают завершиться.
  • Отсутствие обработки ошибок внутри addBackgroundJob — исключение может упасть вне контекста и не быть залогировано.
  • Вынос критических операций (например, фискализация) без fallback — при сбое данные потеряются.

Пример из практики

На проекте интернет-магазина с 50 000 заказов в месяц мы вынесли в отложенные функции отправку писем (3 письма на заказ), логирование и вызов API СДЭК. Время ответа на странице оформления заказа снизилось с 4,5 секунд до 0,3 секунды. Нагрузка на сервер упала на 40%, что позволило отказаться от дополнительной ноды. Окупаемость внедрения составила менее недели за счёт снижения нагрузки.

Что входит в настройку

  • Проверка совместимости серверного окружения (PHP-FPM, fastcgi_finish_request)
  • Вынос тяжёлых обработчиков событий в addBackgroundJob
  • Настройка request_terminate_timeout в PHP-FPM
  • Мониторинг: логирование времени выполнения фоновых задач
  • Тестирование: замер времени ответа до и после переноса операций в отложенные функции

Как мы помогаем

Мы внедрили отложенные функции на 30+ проектах. Инженеры знают все тонкости fastcgi_finish_request и настройки PHP-FPM. Предоставляем документацию и поддержку после внедрения. Получите консультацию — оценим ваш проект за 1 день. Свяжитесь с нами, чтобы узнать, подходит ли ваш сайт для этой оптимизации.

Согласно официальной документации PHP, fastcgi_finish_request доступен только при использовании FastCGI Process Manager. fastcgi_finish_request

Дополнительно: ознакомьтесь с документацией addBackgroundJob на официальном портале 1С-Битрикс.

Что включает профессиональная установка 1С-Битрикс

Мы начинаем установку 1С-Битрикс с проверки innodb_buffer_pool_size. Дефолтное значение MySQL (128 МБ) — приговор для интернет-магазина с каталогом на 10 000+ товаров. Мы ставим 70–80% от доступной RAM на выделенном сервере, 50% на VPS. Одна эта настройка ускоряет сайт в 2–3 раза по сравнению с дефолтом. Оценим ваш проект за один день — получите консультацию. Обращайтесь, чтобы заказать установку под ключ с гарантией производительности.

Как выбрать хостинг и редакцию для установки 1С-Битрикс?

BitrixVM — виртуальная машина с предустановленным стеком: nginx + Apache, PHP-FPM, MySQL/MariaDB, Sphinx, Push‑сервер. Для VPS — лучший старт. Всё уже сконфигурировано под Битрикс, включая OPcache, логротацию и firewall. Управление через веб‑панель на порту 8890.

VPS/VDS — золотая середина. Минимальная конфигурация для среднего интернет‑магазина: 2 vCPU, 4 ГБ RAM, SSD. Оптимальная: 4 vCPU, 8 ГБ RAM. ОС: Ubuntu 22.04 или Debian 12. Если не BitrixVM — настраиваем стек вручную под задачу. Виртуальный хостинг — только для визиток и лендингов. Требования: PHP 8.0+, MySQL 5.7+ / MariaDB 10.0+, 512 МБ RAM, .htaccess. Хостинг‑партнёры 1С-Битрикс — гарантия совместимости. Выделенный сервер — для highload. Типичная архитектура: веб‑сервер отдельно, база данных отдельно, Redis/Memcached отдельно. На редакции «Энтерпрайз» — веб‑кластер с балансировщиком. Облако (Yandex Cloud, VK Cloud, Selectel) — когда нагрузка скачет: распродажи, сезонные пики. Автомасштабирование через Managed Kubernetes или просто вертикальное масштабирование VM.

Выбор редакции — не менее важный шаг. Частая ошибка: берут «Малый бизнес» для магазина, который через полгода вырастает до B2B с оптовыми ценами и тремя складами. Переход на «Бизнес» — доплата разницы, данные не теряются, но лучше предусмотреть заранее. Наши специалисты подберут редакцию под текущие задачи и с запасом на рост. Например, лицензия «Бизнес» (около 35 000 ₽) окупается за счёт мультисклада и обмена с 1С, а неправильный выбор приводит к потере до 30 000 ₽ ежемесячно на избыточных ресурсах.

Редакция Для кого Ключевое ограничение
Старт Визитки, лендинги Нет инфоблоков 2.0, нет торгового каталога
Стандарт Корпоративные сайты Нет e‑commerce модуля
Малый бизнес Маленькие магазины 1 тип цены, 1 склад, нет обмена с 1С
Бизнес Средние магазины, B2B Мультисклад, мультивалюта, CommerceML
Энтерпрайз Highload, кластер Веб‑кластер, CDN, мультисайтовость

Какие настройки сервера критичны для 1С-Битрикс?

Веб‑сервер и PHP

nginx как reverse proxy + Apache (mod_php) или nginx + PHP-FPM напрямую. Второй вариант экономит память — Apache не нужен. Но некоторые модули Битрикс используют .htaccess, поэтому для совместимости иногда оставляем Apache. Конфигурация nginx: fastcgi_read_timeout 300 — для долгих операций (импорт из 1С), client_max_body_size 1024m — загрузка больших файлов. Закрываем доступ к .settings.php, .settings_extra.php, bitrix/.settings.php — там пароли к базе. Rewrite‑правила из urlrewrite.php — Битрикс сам генерирует, но при nginx + PHP-FPM нужно продублировать. PHP 8.0–8.2 с расширениями: mbstring, curl, gd, xml, json, opcache, redis/memcached. Ключевые настройки php.ini: opcache.memory_consumption=256, opcache.max_accelerated_files=20000, max_execution_time=300, memory_limit=512M, upload_max_filesize=100M, post_max_size=128M.

База данных и кэширование

MySQL/MariaDB. Ключевые параметры my.cnf: innodb_buffer_pool_size — 70–80% RAM, innodb_log_file_size=256M, tmp_table_size=256M, max_heap_table_size=256M, thread_pool_size — по количеству ядер CPU. Кодировка utf8mb4 обязательно, иначе эмодзи и спецсимволы ломаются. Redis предпочтительнее Memcached для Битрикс — поддерживает persistent connections и более надёжен. Настраиваем в .settings_extra.php:

'cache' => ['value' => ['type' => ['class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis']]]
'session' => ['value' => ['mode' => 'default', 'handlers' => ['general' => ['type' => 'redis']]]]

SSL, почта и cron

SSL — Let's Encrypt через certbot в 90% случаев. Редирект HTTP → HTTPS (301), HSTS, TLS 1.2/1.3, OCSP Stapling. В Битрикс переключаем на HTTPS в настройках главного модуля. Почта: отказываемся от mail() — подключаем SMTP (Яндекс.Почта для домена, Mail.ru для бизнеса). Обязательно настраиваем SPF, DKIM, DMARC. Без SPF письма уходят в спам. Тестируем доставляемость через mail‑tester.com — оценка 9+/10. Cron: агенты Битрикс переводим на системный cron — * * * * * /usr/bin/php /var/www/bitrix/modules/main/tools/cron_events.php. На cron вешаем обмен с 1С (15–60 мин), поисковую переиндексацию, бэкапы (mysqldump + rsync, ротация 7+4), очистку временных файлов.

Безопасность и администрирование

Файловая система: владелец www-data, директории 755, файлы 644, upload 775. nginx блокирует доступ к файлам конфигурации. Включаем Проактивную защиту Битрикс — WAF, контроль активности (блокировка после 5 неудачных попыток), проверку целостности ядра. Для админ‑панели: двухфакторная аутентификация через Google Authenticator или OTP, ограничение доступа по IP через nginx для параноиков.

Сколько времени занимает установка 1С-Битрикс и настройка?

Задача Срок
Установка на виртуальный хостинг 2–4 часа
Установка на VPS с настройкой стека 1–2 дня
Установка на dedicated с проектированием архитектуры 2–5 дней
SSL + почта + cron + безопасность 1–2 дня
Настройка бэкапов и мониторинга 0.5–1 день

Проверка после установки (пошаговый чек‑лист)

  1. Монитор производительности (/bitrix/admin/perfmon_panel.php) — целимся в 30+ баллов. Ниже 20 — есть серьёзные проблемы с конфигурацией.
  2. Проверка системы — автоматическая проверка всех параметров. Красные пункты — исправляем обязательно, жёлтые — по ситуации.
  3. Сканер безопасности — проверка на типичные уязвимости.
  4. PageSpeed Insights — TTFB < 200мс на VPS, LCP < 2.5с.
  5. Тестовый обмен с 1С — если планируется интеграция, проверяем CommerceML‑обмен до запуска.

Дополнительно проверяем версии ПО, настройки кэширования, работу cron, SSL‑сертификат, SPF/DKIM/DMARC, права доступа, удаление дефолтных пользователей и страниц. Для проектов с 54‑ФЗ убеждаемся, что настроена фискализация через ОФД‑провайдера.

Что входит в работу (deliverables)

  • Полностью настроенный сервер под 1С-Битрикс с оптимизацией MySQL, PHP, nginx.
  • Установленная и активированная лицензия нужной редакции.
  • SSL‑сертификат, почтовые настройки, cron и бэкапы.
  • Документация: все параметры конфигурации, доступы, cron‑задачи.
  • Обучение контент‑менеджера: как заходить в админку, добавлять товары, загружать изображения.
  • Поддержка после установки в течение 30 дней — консультации по настройкам.

Почему стоит доверить установку профессионалам?

Неправильная установка — потеря времени и денег. Мы видели проекты, где магазин на «Старте» не мог выдержать 50 посетителей, потому что не был настроен innodb_buffer_pool_size. После переноса на VPS с правильной конфигурацией сайт «полетел». Неправильная конфигурация может обходиться в 30 000 ₽ ежемесячно из‑за избыточного потребления ресурсов. Вы получаете готовую архитектуру, которая масштабируется. Закажите установку 1С-Битрикс под ключ — и получите надёжную платформу для роста бизнеса. Свяжитесь с нами — рассчитаем стоимость под ваш проект. Опыт более 7 лет, реализовано 120+ проектов на Битрикс, включая highload‑магазины с миллионными каталогами. Обращайтесь — мы поможем настроить Битрикс под ваш проект.