我正在利用一个异步框架来序列化/反序列化来自连接的数据,并通过一个将来的接口返回反序列化的结果
我的问题是有些RPC调用没有返回值。如果我从反序列化结果返回None
,异步框架就会认为反序列化过程有问题
为了解决这个问题,我更新了反序列化程序,以返回一个表示无返回值的令牌。这让我更进一步,但我仍然需要对未来的返回值进行后期处理,以检查该令牌,如果存在,则不返回任何令牌
我正在寻找一个干净的方法来处理这种情况。我可以创建一个委托类来包装未来,并根据需要覆盖所有方法和分派/发布过程,但这感觉过于冗长
另一种尝试是:
def wrap_future(self, delegate):
orig_result = delegate.result
delegate.result = lambda: self.post_process(orig_result.__call__())
return delegate
这适用于简单的情况,但由于Future可以接受参数,我不太确定如何捕获和传递所述参数
这让我想知道是否有更惯用的方法来完成上述任务
目前没有回答
相关问题 更多 >
编程相关推荐