如果我在旧版本运行时部署新版本的 lambda,会发生什么情况?
旧的有中断吗?还是会用新的来处理下一个事件,而旧的则像什么都没发生一样运行?
我找不到有关它的文档
我有一个由两部分组成的软件:一部分是在第一台PC上运行的python,另一部分是在第二部分上运行的cpp.它们通过串口(tty)进行通信.
我想在我的电脑上测试python端,用适当的数据提供它,看它是否按预期运行.
我开始使用子进程,但后来出现了问题:我应该提供哪个stdin和stdout?
cStringIO
不起作用,因为没有 fileno()
PIPE也不起作用,因为select.select()
即使实际上没有发送任何内容,也有可读的内容
你有什么提示吗?我可以使用假的tty模块吗?
我们使用 kafka 与 avro 架构,并且架构注册表设置为FULL
兼容性。我们的模式使用logicalType
字段,例如:
{
"name": "MyRecord",
"type": "record",
"fields": [
{
"name": "created_at",
"type": [
"null",
{
"type": "long",
"logicalType": "timestamp-millis"
}
],
"default": null
}
]
}
Run Code Online (Sandbox Code Playgroud)
这对于我们正在使用的相当旧的版本来说工作得很好confluent-kafka
,因为它依赖于avro-python3
1.8。但是,最近confluent-kafka
依赖于avro-python3
1.10,消息序列化失败,并显示TypeError: unhashable type: 'mappingproxy'
我已经打开了一个 PR 来解决这个问题,但并没有引起太多关注。
假设它不会被合并,我还有哪些其他选项可以升级到最新版本confluent-kafka
?
我看到的唯一解决方案是摆脱logicalType
,但这将是不兼容的架构更改,因此我要么放弃兼容性FULL
,要么使用绑定到不同架构的不同主题。
即使上述方法有效,我也必须手动将毫秒转换为时间戳,这对我们的代码库来说是一个很大的变化。