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

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

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

Продолжаем наш мастер класс по внедрению асинхронности в 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!