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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Популярное

Самые популярные посты

Как быть максимально продуктивным на удалённой работе?
Business

Как быть максимально продуктивным на удалённой работе?

Я запустил собственный бизнес и намеренно сделал всё возможное, чтобы работать из любой точки мира. Иногда я сижу с своём кабинете с большим 27-дюймовым монитором в своей квартире в г. Чебоксары. Иногда я нахожусь в офисе или в каком-нибудь кафе в другом городе.

Привет! Меня зовут Сергей Емельянов и я трудоголик
Business PHP

Привет! Меня зовут Сергей Емельянов и я трудоголик

Я программист. В душе я предприниматель. Я начал зарабатывать деньги с 11 лет, в суровые 90-е годы, сдавая стеклотару в местный магазин и обменивая её на сладости. Я зарабатывал столько, что хватало на разные вкусняшки.

Акция! Профессиональный разработчик CRM за 2000 руб. в час

Выделю время под ваш проект. Знания технологий Vtiger CRM, SuiteCRM, Laravel, Vue.js, Golang, React.js. Предлагаю варианты сотрудничества, которые помогут вам воспользоваться преимуществами внешнего опыта, оптимизировать затраты и снизить риски. Полная прозрачность всех этапов работы и учёт временных затрат. Оплачивайте только рабочие часы разработки после приемки задачи. Экономьте на платежах по его содержанию разработчика в штате. Возможно заключение договора по ИП. С чего начать, чтобы нанять профессионального разработчика на full-time? Просто заполните форму!

Telegram
@sergeyem
Telephone
+4915211100235