Ми}{@лbI4

Блог хеллоуворлдщика

Модуль для работы с очередями на Zend Framework 3

07.09.2017 queue, zf3, module

Когда дело касается отправки Email, сообщений в различные мессенджеры, рассылка SMS или других любых операций, то на помощь приходят очереди. Благодаря очередям мы можем управлять процессом в фоне и следить за состоянием. Во многих фреймворках, которые пользуются большей популярностью в мире, есть свои пакеты для работы с очередями. У Zend Framework, увы, не было до сегодняшнего момента.

Latest Stable Version Total Downloads Latest Unstable Version License Build Status Coverage Status

Модуль является обычным соглашением на пути реализации выполнения очередей на основе любого трансфера: будь-то база данных или какое-то другое хранилище. Проще говоря, этот модуль есть просто абстрактный слой.

Модуль пока что находится в alpha версии, но скоро выйдет в свет beta или вообще полноценная стабильная версия. Всем, кому интересно - следите за обновлениями. Некоторые вещи не реализованы, например, выполнение заданий в фоне. Пока что возможно запускать задачи последовательно одну за другой. Каждая задача ждет выполнение предыдущей. В будущем при необходимости планируется доработать.

Из интересного в модуле можно отметь:

  • cвой менеджер очередей (не нужно писать все в общий сервис менеджер);
  • возможность настройки из конфиг.файла максимального количество задач для запуска в очереди и максимального количество ошибок задачи по достижению лимита которая будет помечена как "невозможная";
  • пример реализации для Doctrine ORM 2
  • гибкость (это все таки абстракция, поэтому крутить можно как душе угодно)

Документация, пока что, тоже сыровата, но работать можно. Как только разгребусь с работой - обязательно все допишу, а пример для Doctrine ORM 2 перепишу в полноценный отдельный модуль.

Ссылка на расширение: https://github.com/bupy7/zf-queue