Skip to content
simpleQueue
simpleQueue
Простая очередь задач для использования в других компонентах
  1. Компоненты
  2. simpleQueue

simpleQueue

Простая очередь сообщений для использования в любых сторонних компонентах.

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

Просто пример: отправка писем. В основном процессе добавляется сообщение о новом исходящем письме, а отдельным скриптом осуществляется отправка письма.

Использовать возможно как на уровне объектов, так и на уровне процессоров.

Подключение сервиса

Стандартный вызов:

php
sq = $this->modx->getService(
    'simplequeue',
    'simpleQueue',
    $this->modx->getOption('simplequeue_core_path', null, $this->modx->getOption('core_path') . 'components/simplequeue/') . 'model/simplequeue/',
    array()
);

Сокращенный вызов:

php
$sq = $modx->getService('simplequeue');

Чтобы он стал возможен, необходимо однократно выполнить код (можно в Console):

php
$modx->addExtensionPackage('simplequeue', '[[++core_path]]components/simplequeue/model/');

Объекты

Класс sqMessage

ПолеНазначениеЗаполняется автоматически?
idIDДа
serviceпроизвольное название сервиса, добавившего сообщениеНет
actionпроизвольное название требуемого действияНет
subjectдетали для выполнения действия. Например, ID обрабатываемого объектаНет
createdonвремя создания, заполняется автоматическиДа
createdbyID пользователя, создавшего сообщениеДа
processedФлаг завершенности (bool)Нет
statusСтатус, устанавливаемый сервисомНет
propertiesJSON массив с произвольными даннымиНет

Класс sqLog

ПолеНазначениеЗаполняется автоматически?
idIDДа
message_idID измененного сообщенияДа
user_idID пользователя, изменившего сообщениеДа
timestampШтамп времени измененияДа
operationПроизведенное действиеДа
entryJSON массив с измененными полями и их значениямиНет

Процессоры

В комплекте с компонентом идут процессоры для сообщений:

ПроцессорНазначениеПринимаемые параметры
createСозданиеservice, action, subject, properties
updateОбновлениеid, status, properties
closeЗавершениеid
openОткрытиеid
getПолучениеid
getlistПолучение спискаids

Пример вызова процессора:

php
$response = $modx->runProcessor(
    'message/update',
    array('id' => 1, 'status' => '5'),
    array('processors_path' => MODX_CORE_PATH . 'components/simplequeue/processors/');
);

При использовании процессоров автоматически создаются записи лога sqLog, сохраняющие состояние сообщений после их сохранения.