跳转到主要内容

Django集成于nameko微服务框架。

项目描述

django-nameko

Travis-CI Coverage Status

分支 构建状态
master Build Status
develop Build Status

nameko-django

Django集成于nameko微服务框架

使用msgpack和pickle的自定义Kombu序列化器

此序列化器完全兼容msgpack,因此可以像这样使用

serializer: 'django_msgpackpickle'
ACCEPT: ['msgpack', 'django_msgpackpickle']
SERIALIZERS:
  msgpack:
    encoder: 'nameko_django.serializer.dumps'
    decoder: 'nameko_django.serializer.loads'
    content_type: 'application/x-msgpack'
    content_encoding: 'binary'

为了将现有的微服务堆栈(使用msgpack序列化器)迁移到使用此新序列化器,首先安装并设置所有项目

serializer: 'msgpack'
ACCEPT: ['msgpack', 'django_msgpackpickle']
SERIALIZERS:
  msgpack:
    encoder: 'nameko_django.serializer.pack'
    decoder: 'nameko_django.serializer.loads'
    content_type: 'application/x-msgpack'
    content_encoding: 'binary'

这将接受msgpackdjango_msgpackpickle两种格式,但仅输出使用msgpack的结果。一旦所有服务迁移完成,再切换到第一种配置

功能

此序列化器将自动编码和解码

  • DateTime、Date、Time、Duration:对象将被转换为与django.utils.dateparse兼容的字符串表示形式,并使用django.utils.dateparse()转换回对象
  • Decimal:对象将被转换为字节字符串,然后恢复回Decimal
  • Django ORM实例:对象将使用python cPickle/pickle库进行pickle,然后恢复为ORM Model实例
  • Django ORM queryset:对象将被变形为Model + Query,然后进行pickle,以避免发送实例列表

字符串评估

此序列化器可以评估与django.utils.dateparse格式兼容的字符串,并自动将其转换为DateTimeDateTimeDuration对象。

它还可以评估类似以下的字符串:"<app_name.model_name.ID>"这将转换为ORM实例:使用Model.objects.get(pk=ID)。例如:<auth.User.1>

"(app_name.model_name: RAW_QUERY_WITHOUT_SELECT_FROM)"这将转换为ORM查询集。例如:(auth.User: id >= 1 and date_joined > '2018-11-22 00:47:14.263837')

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

nameko-django-1.1.4.tar.gz (18.1 kB 查看散列值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面