Когда дело касается отправки Email, сообщений в различные мессенджеры, рассылка SMS или других любых операций, то на помощь приходят очереди. Благодаря очередям мы можем управлять процессом в фоне и следить за состоянием. Во многих фреймворках, которые пользуются большей популярностью в мире, есть свои пакеты для работы с очередями. У Zend Framework, увы, не было до сегодняшнего момента.
Модуль является обычным соглашением на пути реализации выполнения очередей на основе любого трансфера: будь-то база данных или какое-то другое хранилище. Проще говоря, этот модуль есть просто абстрактный слой.
Модуль пока что находится в alpha версии, но скоро выйдет в свет beta или вообще полноценная стабильная версия. Всем, кому интересно - следите за обновлениями. Некоторые вещи не реализованы, например, выполнение заданий в фоне. Пока что возможно запускать задачи последовательно одну за другой. Каждая задача ждет выполнение предыдущей. В будущем при необходимости планируется доработать.
Из интересного в модуле можно отметь:
- cвой менеджер очередей (не нужно писать все в общий сервис менеджер);
- возможность настройки из конфиг.файла максимального количество задач для запуска в очереди и максимального количество ошибок задачи по достижению лимита которая будет помечена как "невозможная";
- пример реализации для Doctrine ORM 2
- гибкость (это все таки абстракция, поэтому крутить можно как душе угодно)
Документация, пока что, тоже сыровата, но работать можно. Как только разгребусь с работой - обязательно все допишу, а пример для Doctrine ORM 2 перепишу в полноценный отдельный модуль.
Ссылка на расширение: https://github.com/bupy7/zf-queue