Vtiger и RabbitMQ - Принимаем данные из сторонних приложений

Vtiger и RabbitMQ - Принимаем данные из сторонних приложений

Продолжаем наш мастер класс по внедрению асинхронности в VtigerCRM. Ранее мы научились отправлять данные из Vtiger в очередь сообщений и принимать их в Laravel. Теперь рассмотрим противоположный сценарий - мы будем читать сообщения в очереди и обрабатывать их соответствующим образом.

Это, наверное, самый сложный этап в работе с очередями. Раньше всё было довольно просто - мы писали обработчики, они отсылали информацию о событии в RabbitMQ. Но теперь нам нужно написать специальный скрипт, который будет постоянно прослушивать очередь и желательно, чтобы им управлял не обычный крон, а Supervisor.

На картинке выше показана схема, как у нас будет выстроена взаимодействие с очередью. RabbitMQ предлагает два способа получения сообщений: мы можем запросить их сами из приложения методом basic.get или сервер их может отправить нам сам методом basic.consume. На картинке выше показан как раз второй подход, который мы и будем использовать.

Вызываемый нами метод subscribe добавляет приложение в очередь и подписывает его на новые сообщения.

При разработке приложения убедитесь, что получатель зарегистрирован именно методом basic.consume, а не basic.get. Второй метод довольно дорогой и требует значительных ресурсов сервера.

С помощью подхода по подписки, сообщения отправляются клиенту из брокера, как только они появятся и клиент доступен для их приёма. Это позволяет очень быстро и легко обрабатывать сообщения. В дополнение, использование подхода subscribe означает, что получатель соединён до тех пор, пока существует канал или пока сам клиент не закроет соединение.

Ниже вы можете увидеть подробный мануал, как мы можем реализовать прослушивание сообщений в RabbitMQ и как мы их будем обрабатывать на примере создания и обновления контактов.

Перед просмотром видео убедитесь, что вы прочитали мои предыдущие посты и посмотрели вступительные видео:

  1. Как установить RabbitMQ
  2. Как связать RabbitMQ c VtigerCRM? Как отправлять данные в очередь?
  3. Как обновить данные в другом приложении из Vtiger?

 

You almost done with this video course. Let's try to make vtiger async!

Популярное

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

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

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

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

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

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

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

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

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

Telegram
@sergeyem
Telephone
+4915211100235