将取消转发到正确的分区

时间:2018-10-29 16:48:38

标签: c# azure-service-fabric cancellationtokensource service-fabric-stateful

此问题是上一个线程的继续。 store cancellation tokens in service fabric services

打开一个新线程,因为回答这个问题并不容易。

总结关于在服务结构的某些分区中取消在特定服务中运行的作业/任务所讨论的内容:

取消令牌限制:

取消令牌在服务分区内工作,这是按分区存储实例的限制,这可能是取消令牌未提供可序列化属性的原因(尝试使用ISerializationSurrogate序列化为字节数组并保存为类附加了DataContract属性,并且在反序列化时会丢失所有嵌套的struct数据。)因此,不能使用可靠的字典。

在服务结构应用程序中两种不同的取消令牌用法:

  1. 提供的Service Fabric固有地注入到RunAsync(CancellationToken){forever loop}之类的方法中,或者由Web API取消请求句柄使用,也可以通过Web API调用将其转发到actor / service中的自定义方法。
  2. 用户生成的取消令牌的管理方式与#1创建的令牌不同(有关如何管理这些令牌的更多说明,属于该线程顶部的上一个线程)。

问题属于该主题:

您如何将通过多个分区端点接收到的API请求转发到正确的分区?我想,一旦请求已从Web API端点转发到正确的分区,那么这似乎很有意义,因为在那时,您应该能够简单地调用该特定分区中存储的cancelledtoken的canceltokensource.cancel(),并假设该cancelingtoken.Cancel()在分区上起作用。

0 个答案:

没有答案