用于通过AWS Kinesis调度和响应任务的通用库
项目描述
Motion
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 查看散列)
关闭
motion-0.2.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5ef37d33e3c839cb90252c63f6d4ad05afb039359c9935f8faa850dce4efad4f |
|
MD5 | b28f98ac9530d8e12fd438bd04b392f2 |
|
BLAKE2b-256 | cdeb01bc2ffc420579fab4910c9938039daeaa962ef2db848aad6089c403a3e9 |
关闭
motion-0.2.0-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4ed068b47952689a31ff4d4d5bb875dc658bc1f425dfe98c0b47af8bff7768e1 |
|
MD5 | 523202760b7d72c7399a4f5cc362e02b |
|
BLAKE2b-256 | c8c14bc02314697c96000d23addfa6b3e23c553e097adc033a3f8deacdc6de96 |