RabbitMQ: Отложеная доставка и время жизни пакета

Собрал наконец в одном классе, всё что мне нужно от RabbitMQ: а именно отправка сообщения в очередь, с отложеной доставкой, плюс уничтожение сообщения по прошествии какого то времени «не доставки».

Ну да, казалось бы элементарные вещи, но на PHP примеров для этого случая не сказать что уж слишком много как оказалось..

PHP: работа с файлами Excel

Одним из вариантов работы с файлами Эксель является библиотека PhpSpreadsheet.

Установка:

PHP: как проверить, вызван ли метод класса из экземпляра, или статически

Задача: при вызове метода класса, использовать разный код в зависимости от того, как вызвана функция: статически или из класса. Т.е. результат выполнения кода:

и кода:

, должен быть разным.

Решение:

объявим в классе статическую переменную, которая будет изменять свое значение, если был создан экземпляр класса.

RabbitMQ: отложенные сообщения

Задача: организовать доставку сообщения «слушателю» спустя какое-то время, а не сразу

Решение: одним из способов реализации является использование модуля rabbitmq-delayed-message-exchange.

Установка для Ubuntu:

  1. Скачать подходящую версию модуля для версии вашего RabbitMQ в формате *.ez
  2. Положить его в папку (в моём случае) /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.9/plugins
  3. Включить плагин

Использование:

Пример постановки в очередь:

Пример слушателя:

Отправка PUSH уведомлений в приложение IOS

Задача: в приложение на IOS отправить push уведомление из PHP

Решение:

1 3 4 5 6 7 25