未知

consul-announcer的Python项目详细描述


Consul服务的播音员。

功能:

  • 使用支票注册/注销服务
  • 生成子流程
  • 定期将所有TTL检查标记为通过(如果有)

安装

常规使用:

pip install consul-announcer  # or add it as a requirement

用法

consul-announcer --config="JSON or @path"[-h][--agent=hostname[:port]][--token=acl-token][--interval=seconds][--verbose] -- command[arguments]

Arguments:

    -h, --help                Show this help message and exit.
    --agent hostname[:port]   Consul agent address: hostname[:port].
                              Default: localhost (default port is 8500).
                              You can also use CONSUL_ANNOUNCER_AGENT env variable.
    --config "JSON or @path"  Consul configuration JSON (required).
                              If starts with @ - considered as file path.
                              You can also use CONSUL_ANNOUNCER_CONFIG env variable.
    --token acl-token         Consul ACL token.
                              You can also use CONSUL_ANNOUNCER_TOKEN env variable.
    --interval seconds        Interval for periodic marking all TTL checks as passed, in seconds.
                              Should be less than min TTL.
                              You can also use CONSUL_ANNOUNCER_INTERVAL env variable.
    --verbose, -v             Verbose output. You can specify -v or -vv.

最少使用量:

consul-announcer --config=@path/to/config.json -- some-process --with --arguments

--config

它应该是包含{"service": {...}}{"services": [...]}

consul-announcer --config='{"service": {"name": "test service", "check": {"ttl": "10s"}}}' -- ...

如果以@开头,则视为文件路径:

consul-announcer --config=@path/to/config.json -- ...

阅读Consul docs about services definition

所有服务和检查将在进程启动时注册,并在进程终止时注销。

也可以使用CONSUL_ANNOUNCER_CONFIGenv变量。

--interval

在上面的例子中,没有指定间隔,因此它将被计算为最小ttl/10(如果在配置中指定了ttl检查)。但您可以提供自己的值(秒)

consul-announcer --interval=3 ...

如果没有ttl检查并且没有--interval-则会引发错误。

也可以使用CONSUL_ANNOUNCER_INTERVALenv变量。

--address

默认代理地址是localhost(带有默认端口8500)。您可以自己提供:

consul-announcer --agent=1.2.3.4:5678 ...

也可以使用CONSUL_ANNOUNCER_AGENTenv变量。

--token

执政官ACL令牌。仅在您已在领事馆代理中启用ACL时才需要。

consul-announcer --token=01234567-89ab-cdef-0123-456789abcdef ...

也可以使用CONSUL_ANNOUNCER_TOKENenv变量。

^ {tt15}$

输出电平:

  • 默认情况下,只打印错误和警告
  • -v将显示信息消息
  • -vv将显示信息和调试消息

在python代码中的用法

fromannouncer.serviceimportServiceservice=Service('localhost:1234','@/path/to/config.json',['sleep','5'],'01234567-89ab-cdef-0123-456789abcdef',0.5)service.run()

开发

安装

git clone <this-repo>
cd consul-announcer
pip install -r requirements/test.txt -e .

测试

测试配置在tox.ini文件中定义,包括py.test测试和flake8源代码检查器。您可以运行所有测试:

python setup.py test

只运行py.test测试,而不是flake8,并重新使用当前的virtualenv

py.test

释放

  • 测试必须通过
  • 不要忘记测试所有新增功能
  • 用发布信息更新CHANGELOG
  • 更新README(如有必要)
  • 提交所有更改
  • 创建新版本标记(例如)v1.2.3
  • 推送提交和标记
  • 在pypi上发布新版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中运行时在两个枚举类之间切换   java如何让PicoContainer启动/停止/处置工厂注入的组件?   带有Recyclerview onClick的java多活动   java如何从TestNG tests和Selenium接口调用默认方法?   java无法在Eclipse3.5.2中折叠注释   RR和SJF CPU调度算法的Java代码   java从属性文件配置记录器   java Notify传输在字符更改后超过20个字节完成   java阵列究竟是如何工作的   java跨类/包维护全局但可变的变量   java向setMessageListener注册侦听器服务   java按钮单击不在片段中工作   java GSSExException:使用spnego在GSSAPI上未指定故障(机制级别:不支持/启用带有HMAC SHA196的加密类型AES256CTS模式)   用java绘制虚线的图形   java从networkdrive启动windows捆绑包使用不包括JRE?   多线程java线程体系结构与应用程序设计