nameko微服务框架的django包装器。

django-nameko的Python项目详细描述


django nameko

特拉维斯ciCoverage Status

BranchBuild status
masterBuild Status
developBuild Status

Nameko微服务框架的django包装器。

支架

测试
  • Python2.7、3.5、3.6、3.7
  • Django 1.11、2.0、2.1、2.2
  • nameko 2.11,2.12

如何使用

fromdjango_namekoimportget_pool# Within some view or model:withget_pool().next()asrpc:rpc.mailer.send_mail(foo='bar')

安装

pip install django-nameko

配置

# Config to be passed to ClusterRpcProxy NAMEKO_CONFIG={'AMQP_URI':'amqp://127.0.0.1:5672/'}# Number of proxies to create # Each proxy is a single threaded standalone ClusterRpcProxyNAMEKO_POOL_SIZE=4# Set timeout for RPCNAMEKO_TIMEOUT=15# timeout 15 seconds# Add this dictionary to context_data of every RPCNAMEKO_CONTEXT_DATA={'hostname':"my.example.com"}# Create multiple ClusterRpcProxy pool each one assoiate with a name# Every pool with pool name different than 'default' will use 'default' pool config as default configurationNAMEKO_CONFIG={'default':{'AMQP_URI':'amqp://','POOL_SIZE':4,'POOL_CONTEXT_DATA':{"common":"multi"},'POOL_TIMEOUT':None},'pool1':{'AMQP_URI':'amqp://pool2','POOL_CONTEXT_DATA':{"name":"pool1","data":123},},'pool2':{'AMQP_URI':'amqp://pool3','POOL_CONTEXT_DATA':{"name":"pool2","data":321},'POOL_TIMEOUT':60},'pool3':{'POOL_SIZE':8,'POOL_TIMEOUT':60}}# Use multi pool by putting pool name in get_pool(..)fromdjango_namekoimportget_poolwithget_pool('pool1').next()asrpc:rpc.mailer.send_mail(foo='bar')# call get_pool() without argument will return the 'default' pool# but you can override the rpc context data before call, example below.# it will auto revert back to POOL_CONTEXT_DATA when exit the with blockwithget_pool().next()asrpc:rpc._worker_ctx.data['SMTP_SECRET']='SECRETXXX'rpc.mailer.send_mail(foo='bar')# try to call rpc outside of with statement block will raise an AttributeError exception rpc.mailer.send_mail(bar='foo')#   File "/usr/local/lib/python2.7/site-packages/django_nameko/rpc.py", line 69, in __getattr__#     raise AttributeError(item)# AttributeError: mailer

贡献

运行测试:

  1. 运行本地rabbitmq
  2. 执行TOX
docker run --rm -p 15672:15672 -p 5672:5672 -p 5671:5671 --name nameko-rabbitmq nameko/nameko-rabbitmq:3.6.6
# open another shell then run
python setup.py test# to run full test with coverage use
tox 

学分

感谢那些制作了一个很棒的Nameko框架的人。

维护人员:

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

推荐PyPI第三方库


热门话题
java使用prepared语句在oracle中插入日期   对点具有双重值的java   使用多个通配符的java请求映射   java Springboot为什么要设置springbootstartertomcat   除了对JavaBean的请求之外,还使用servletContext的servlet   java如何清除OCSID。返回到池的连接时的CLIENTID JDBC客户端信息属性   将整型数组转换为光栅Java   java使用对象引用作为互斥锁   java为什么在编程语言中使用sin函数返回奇怪的sin值不像计算器   java如何将JButton链接到对象并调用相关方法   php用Java发送POST数据   导航属性的java模拟加载   java多个活动错误Android试图对空对象引用调用虚拟方法“”   java Android更改ActionBar文本颜色   如何使用带有java反射且不带开关的parant引用创建子类