1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xlggg-http-notification

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

HTTP-уведомление

Уведомляющий сервис на основе HTTP

基于HTTP的高送达率异步通知服务.

avatar

Сценарии использования

  • Платёжное успешное уведомление.
  • Высокоэффективное асинхронное уведомление между различными бизнес-процессами.
  • ...

Например, A хочет отправить определённое сообщение B, но не хочет, чтобы отправка сообщения блокировала выполнение операций в A. В этом случае можно упаковать задачу уведомления в специальный центр обработки уведомлений, который будет выполнять отправку сообщений.

Установка

  1. Скачайте программу.
  2. Выполните команду composer install для завершения установки зависимостей.

Запуск сервиса

  1. Откройте файл config.php для настройки Redis и стратегии уведомлений.
  2. Запустите сервис уведомлений с помощью команды php worker.php.

Публикация задач

Встроен процесс отправки задач через HTTP POST. Для публикации задачи выполните команду php http_api.php. Вы также можете использовать другие методы для отправки задач, например, прямое взаимодействие с Redis.

curl post http://127.0.0.1:2345

url:http://xxx.com/path/to?foo=bar  Адрес уведомления
payload:somestring...  Содержание уведомления
tactic:A  Стратегия уведомления
time:15968576857  Время первого запуска уведомления (по умолчанию используется текущее время)

Обратите внимание, что при отправке каждой задачи рекомендуется указать уникальный идентификатор, например, параметр uuid в файле http_api.php. Это облегчит анализ отслеживания задач. Также можно добавить дополнительные критерии фильтрации для упрощения анализа данных. Статистический анализ позволяет удобно отслеживать обработку задач от разных клиентов.

Описание параметров конфигурации

  • fail_interval: интервал в секундах между повторными попытками уведомления после неудачной попытки.
  • max_times: максимальное количество попыток уведомления. Если количество неудачных попыток достигает этого значения, задача считается потерянной и уведомление прекращается.
  • notify_rates: частота уведомлений в виде массива. Первый элемент представляет частоту уведомлений на текущий момент времени, второй элемент — частоту уведомлений за предыдущую секунду и так далее. Обычно задачи выполняются в течение текущего момента времени. Если задач много, а некоторые из них не были выполнены к текущему моменту, они переносятся на предыдущий временной интервал. Обычно достаточно 3–5 временных интервалов.
  • clear_rate: частота выполнения процесса очистки, если все временные интервалы не смогли выполнить задачи.
  • clear_start: время начала процесса очистки. Обычно это значение устанавливается на 10 минут раньше текущего времени. Однако, если система была остановлена на час, рекомендуется установить время остановки системы в качестве времени начала очистки.

Параметры конфигурации должны быть адаптированы к аппаратным ресурсам сервера и пропускной способности сети. Если один сервер не может справиться с уведомлением, можно запустить несколько серверов для выполнения этой функции.

Мониторинг и обслуживание

По умолчанию, журнал уведомлений записывается в файл журнала. Вы можете настроить запись журнала в Elastic, Redis, MySQL или другие платформы. Также вы можете отправлять журналы в собственные системы мониторинга. Рекомендуется использовать Elastic.

Условия использования

Вы можете бесплатно использовать этот проект как в коммерческих, так и в образовательных целях. Вы также можете изменять код проекта в соответствии со своими потребностями, но распространение проекта без разрешения автора запрещено.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Сервис уведомлений на основе HTTP. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/xlggg-http-notification.git
git@gitlife.ru:oschina-mirror/xlggg-http-notification.git
oschina-mirror
xlggg-http-notification
xlggg-http-notification
master