跳转到主要内容

用于通过AWS Kinesis调度和响应任务的通用库

项目描述

Motion

Build Status CodeCov PyPI - Version PyPI - Python Version

Motion是Amazon Kinesis的高级任务调度和响应框架。它构建在低级kinesis-python库之上,并受到Celery任务定义的启发。

Motion仍在积极开发中。这里的内容可能会变化

使用方法

创建一个Motion对象

from motion import Motion

tasks = Motion(stream_name='my-kinesis-stream')

响应任务

@tasks.respond_to('my-event')
def my_event_handler(payload):
    # do something with payload...

调度任务

# dispatch an event 'my-event' with the specified payload
tasks.dispatch('my-event', {'foo': 'bar'})

运行工作进程

序列化

事件和有效负载通过序列化过程转换为适合在Kinesis流上传输的字节流。Motion附带一个默认的JSON序列化类,它简单地将Python对象转换为它的JSON等价物,并包装在事件名中,但序列化操作可以扩展以支持任何所需的序列化类型(例如protobuf,avro等)

要实现自定义序列化,必须满足以下方法签名

class MyMarshal(object):
    def to_native(self, payload):
        # de-serialize payload
        return event_name, event_payload

    def to_bytes(self, event_name, payload):
        # serialize payload
        return serialized_payload

然后,在创建Motion实例时,通过marshal=关键字传递您自己的序列化类的一个实例。

事件名

在基本示例中,使用了.respond_to装饰器与字符串一起,因为这是默认的JSON序列化器返回的内容,但由于自定义序列化可以在.to_native调用期间返回任何事件名,因此您可以在.respond_to装饰器中使用您选择的任何符号。

项目详情


下载文件

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

源分发

motion-0.2.0.tar.gz (7.3 kB 查看散列)

上传时间

构建分发

motion-0.2.0-py3-none-any.whl (6.6 kB 查看散列)

上传时间 Python 3

由以下支持