Недавно явил свету маленький демон yup. Написан он на ruby, разворачивается в два шага (gem install && run).
Назначение у него простое:
В итоге, получаем маленький модуль на который можно без особого труда делегировать гарантированную и асинхронную отправку HTTP-запросов на какой-либо HTTP-сервис.
Установка
Предельно проста:
Конфигурация и запуск
Конфигурация задаётся через командую строку:
Опции таковы:
Пример использования:
Текущий статус
На данный момент, мы в undev используем его для отправки эксепшенов в errbit (переконфигурация hoptoad_notifier или airbrake предельно проста), а также для других сервисов с подобным HTTP API.
Проект имеет roadmap, планируется сделать возможность конфигурации yupd-подпроцессов, то есть, если yupd-ов становится больше одного, то можно иметь один мастер-процесс, который запускается таким образом:
Если кто заинтересовался и захотел покомитить — you're very welcome!
Назначение у него простое:
- принять HTTP-запрос и сразу ответить клиенту,
- запрос ставится в очередь и пересылается указанному в конфигурации yupd хосту,
- если пересылка запроса постигла неудача (проблемы с сетью, глюки софта), то повторить через некоторое время.
В итоге, получаем маленький модуль на который можно без особого труда делегировать гарантированную и асинхронную отправку HTTP-запросов на какой-либо HTTP-сервис.
Установка
Предельно проста:
$ gem install yup
Конфигурация и запуск
Конфигурация задаётся через командую строку:
yupd [OPTION...] FORWARD_TO_HOST
Опции таковы:
--listen <host:port>
Указывает куда биндиться. (по-умолчанию, localhost:8080).--status-code <code>
Указывает какой код ответа нужно вернуть клиенту. (200).--resend-delay <seconds>
Пауза между попытками переслать HTTP-запрос. (5.0)--watermark <number>
Лимит одновременно обрабатываемых запросов. При его преодолении поступающие запросы будут игнорироваться. В персистентном режиме опция не имеет смысла. (100)--persistent <path-to-db>
Если нет желания теряться запросы при преодолении лимита, то можно включить персистентный режим. Тогда все запросы будут проходить через персистентную очередь. Используется BerkeleyDB.FORWARD_TO_HOST
Хост:порт, куда нужно пересылать запросы.
Пример использования:
$ yupd --listen localhost:8081 --status-code 201 --persistent /var/db/yupd-errbit errbit.host.somewhere
Текущий статус
На данный момент, мы в undev используем его для отправки эксепшенов в errbit (переконфигурация hoptoad_notifier или airbrake предельно проста), а также для других сервисов с подобным HTTP API.
Проект имеет roadmap, планируется сделать возможность конфигурации yupd-подпроцессов, то есть, если yupd-ов становится больше одного, то можно иметь один мастер-процесс, который запускается таким образом:
yupd { --listen localhost:8081 --status-code 201 errbit.host.somewhere } \ { --listen localhost:8082 --status-code 202 --persistent /var/db/yupd-service some.other.service }Напоследок можно добавить, что я до сих пор не осилил английский и документация находится в сыроватом виде.
Если кто заинтересовался и захотел покомитить — you're very welcome!
Watch the Full Live Stream of the NBA from the USA at Viacom - Viacom
ОтветитьУдалитьWatch the Full Live Stream of the NBA from the USA at Viacom. The official site of youtube to mp4 the NBA Championship is Viacom.