谈到取消和微服务/云架构,似乎标准的.NET CancellationTokenSource
类不符合需求:它不提供任何可扩展性机制,允许将状态存储在外部集中存储中并使其成为可能取消操作,该操作从另一个服务实例开始在一个服务实例上执行。
对于示例,我可能使用昂贵的“UploadAvatar”方法提供服务“Customer”(实际上我有几分钟的方法执行)。服务“客户”是可扩展的,我们有2个实例。用户上传他的照片,我们开始处理它。此时他上传了另一张照片,旧作业不再是实际的,所以出于性能原因,我们需要取消它。
通过互联网搜索没有给我任何明显的实现这个基本任务。有谁知道提供分布式操作取消的图书馆?你有没有想过为什么.NET FCL不提供这样的类或抽象?
PS:如果抽象尽可能接近现有的CancellationToken
公共接口,那就更好了,这样就可以更轻松地将现有代码迁移到云中并扩展现有服务。 / p>