posix ipc支持asgi通道层实现
asgi_ipc的Python项目详细描述
用法
您需要使用路径前缀实例化通道层以创建 下面的ipc对象;具有相同前缀的任何通道层都将与 只要他们在同一台机器上就可以互相联系。
示例:
importasgi_ipcasasgichannel_layer=asgi.IPCChannelLayer(prefix="aeracode",message_memory=200*1024*1024,)channel_layer.send("my_channel",{"text":"Hello ASGI"})print(channel_layer.receive(["my_channel",]))
前缀
用于根命名空间下IPC对象的前缀。默认为 asgi 。 同一台机器上具有相同前缀的IPC层将相互通信。
信息存储
要分配给通道存储器的共享内存量,以字节为单位。 默认为100MB。你所有的机上信息都必须符合这一点, 否则,如果内存空间已满,您将收到 channelfull 错误。
asgi消息最多可达1兆字节,并且通常要小得多。 每条消息顶部的IPC路由元数据大约为50字节。
组存储器
要分配给组存储的共享内存量,以字节为单位。 默认为20MB。你的所有组成员数据必须符合此空间, 否则,您的组成员身份可能无法保持。
您可以将大约4000个组通道成员关系放入一个 兆字节内存。
到期
消息在秒内过期。默认为 60 。你一般不需要 要改变这个,但如果你有高峰流量,你可能想把它关小一点 如果你有高峰流量,你想停下来,或者停下来 开始吧。
组有效期
组在秒内过期。默认为 86400 。接口服务器将丢失 在这段时间后连接;建议您将其减少为 更健康的系统,鼓励断开连接。
容量
默认信道容量。默认为 100 。一旦一个频道有容量, 它会拒绝更多的信息。这如何影响系统的不同部分 变化;例如,http服务器将拒绝连接,而django 发送响应将一直等到有空为止。
信道容量
每通道容量配置。这样可以调整频道容量 基于频道名称,并支持全局和正则表达式。
它应该是将通道名称模式映射到所需容量的dict;如果 dict key是一个字符串,它被称为glob,而如果它是编译的 re 对象,它被视为正则表达式。
这个例子将http.request设置为200,all http.response! 频道 到10,全部 websocket.send! 20个频道:
channel_capacity={"http.request":200,"http.response!*":10,re.compile(r"^websocket.send\!.+"):20,}
如果你想强制执行文学硕士学位匹配订单,使用 ordereddict 作为 参数;然后将按照dict提供的顺序匹配频道。