Очередь сообщений на ReactPHP + Redis для отправки уведомлений через различные каналы (электронная почта, Telegram). Включает в себя обработчик очереди и API для добавления задач в очередь.
-
Клонируйте репозиторий:
git clone https://github.com/romanvht/AsyncNotifier.git cd AsyncNotifier
-
Установите зависимости с помощью Composer:
composer install
-
Создайте файл
.env
в корне проекта, взяв за основу файл.env.template
:cp .env.template .env
-
Убедитесь, что у вас установлен и настроен Redis, так как проект использует его для очередей.
Настройте ваш веб-сервер (например, Apache или Nginx) для работы с папкой public
в качестве корневого каталога. После этого API будет доступно по вашему домену или IP-адресу.
Отправьте POST-запрос на http://ваш-домен
с телом запроса в формате JSON для электронной почты:
{
"type": "email",
"data": {
"to": "[email protected]",
"subject": "Test Email",
"body": "This is a test email."
}
}
Отправьте POST-запрос на http://ваш-домен
с телом запроса в формате JSON для Telegram:
{
"type": "telegram",
"data": {
"chat_id": "your_chat_id",
"message": "This is a test message."
}
}
Воркер обрабатывает задачи из очереди. Чтобы запустить воркера, выполните следующую команду:
php worker.php
Проект использует Monolog для логирования. Логи записываются в файлы в директории logs
. Также логи выводятся в стандартный вывод (stdout).
- PHP 7.4 или выше
- Composer
- Redis
- PHPMailer
- GuzzleHttp
- Monolog
- ReactPHP