Асинхронный Vtiger с помощью RabbitMQ

Асинхронный Vtiger с помощью RabbitMQ

Представляю вашему вниманию последнее видео из курса "Асинхронный Vtiger c RabbitMQ". Это, пожалуй, основное и самое интересное видео из курса, в котором мы будем внедрять асинхронные операции и систему событий в Vtiger. И всё это будет происходить в асинхронном режиме, не нагружая систему.

Представляю вашему вниманию последнее видео из курса "Асинхронный Vtiger c RabbitMQ". Это, пожалуй, основное и самое интересное видео из курса, в котором мы будем внедрять асинхронные операции и систему событий в Vtiger. И всё это будет происходить в асинхронном режиме, не нагружая систему.

В своей практике я часто видел CRM системы, которые при изменении какой-либо записи (например, сделки) заставляли пользователя ждать несколько секунд, пока операция завершится. Это всё приводило к общему мнению, что система "тормозит". Основная причина этого - разработчики навешивают различные обработчики или запускают какие-либо функции, которые совершают вспомогательные и расчётные операции. Например, пересчитывают прогнозируемую сумму сделки, отправляют API запросы в учётную систему и прочее.

Иногда, чтобы не заставлять ждать пользователя, разработчики настраивают cron-задачи, которые затем запускаются раз минуту и совершают операции в фоне. Это с точки зрения пользователя ускоряет систему, но довольно сильно нагружает сервер. Так как теперь мы вынуждены каждый раз выполнять одну и ту же операцию.

В предыдущих статьях я уже писал про очереди и систему событий - это технология непрямого взаимодействия между модулями системы или между другими программами. Наша CRM будет отправлять сообщения в очередь и другие модули приложения будут читать эти сообщения и выполнять их.

Какую пользу нам это принесёт:

- Система работает быстро с точки зрения пользователя.

Основная причина, по которым внедрение очередей будет полезным - вы не заставляете пользователей ждать выполнение определённых операций на сервере, перед тем как продолжить работу.

Например, пользователю не обязательно ждать, пока система пересчитает доход по сделке после смены её статуса. Даже если по-мнению разработчика это делается быстро, могут возникнуть случаи, когда расчёт будет производиться дольше, чем нужно. В этом случае вы можете после смены статуса сделки отправить успешный ответ, чтобы пользователь мог продолжить работу, а саму операцию по пересчёту прибыли по сделки запустить в фоне в отдельном процессе.

- Более качественная обработка ошибок.

Системы очередей выстраиваются так, что сообщения висят, пока они не будут обработаны. В случае ошибки, вы можете сконфигурировать всё так, чтобы система могла повторить операцию позже. Если обработка пообщения падает с ошибкой более трёх раз, мы можем созранить его в отдельную таблицу, стобы администратор могу запустить его вручную.

Например, если задача события отправить данные в учётную систему, которая в определённый момент времени была не в сети, вы можете настроить обработку сообщений так, чтобы они могли повторить отправку данных через какое-то время ещё раз.

- Масштабируемость

Для приложений с непредсказуемой нагрузкой - это простая потеря делен выделять дополнительные ресурсы каждый раз, когда нет нагрузки на сервер. С очередями вы можете контрлировать уровнь, по которому скрипты запрашивают сообщения в очереди.

Если вы выделите на эту часть дополнительные ресурсы, система будет запрашивать события чаще, а если ограничите, обработка очереди будет происходить медленнее.

Итак, внедрение системы очередей позволяет существенно оптимизировать работу CRM системы, сделать её быстрее, эффективнее. В видео под этой статьёй вы можете увидеть реализацию простейшего примера на RabbitMQ - автоматическое создание проектных задач при создании проекта. Конечно, вы можете внедрить у себя более сложные реализации этого кейса.

Перед просмотром видео рекомендую ознакомиться со вступительными материалами:

  1. Как установить RabbitMQ на свой сервер
  2. Как подключить RabbitMQ к Vtiger
  3. Отправляем сообщения в RabbitMQ из Vtiger
  4. Принимаем сообщения из RabbitMQ в Vtiger

Приятного просмотра!