# Создание обработчиков

Для обработки сообщения необходимы два класса:

  • Класс-сообщение, который содержит необходимые данные.
  • Класс-обработчик, который занимается обработкой сообщения.

Класс-обработчик должен реализовывать интерфейс Symfony\Component\Messenger\Handler\MessageHandlerInterface и иметь метод __invoke(), который принимает в качестве входного параметра объект класса-сообщения.

# Регистрация обработчика

Обработчики регистрируются с помощью метода addMessageHandler

Пример:

<?php
// local/php_interface/init.php
use App\MessageHandler\MyMessageHandler;
use Bitrix\Main\Loader;
use Bsi\Queue\Queue;

if (Loader::includeModule('bsi.queue')) {
    $queue = Queue::getInstance();
    $queue->addMessageHandler(MyMessageHandler::class);
    $queue->boot();
}

ВАЖНО

Обработчики должны добавляться до инициализации системы очередей (вызова метода boot()).

Пример отправки сообщения:

<?php

use Bsi\Queue\Queue;

Queue::getInstance()->dispatchMessage(new MyMessage('Hello, world'));

Ссылки по теме: