Azure service fabric 服务结构长时间运行过程

Azure service fabric 服务结构长时间运行过程,azure-service-fabric,Azure Service Fabric,我有一个WebAPI无状态服务,它正在创建一个参与者,该参与者通过提醒(触发并忘记)执行一些长时间运行的处理。它将自己的进度存储在本地状态中。由于Actor的单线程特性,我无法获取长时间运行的进程的进度,对获取进度的方法的任何调用都将等待长时间运行的进程完成。是否有人对此有解决方案(不使用外部数据源)?您可以创建一个ProgressTrackingActor,并定期从现有的Actor更新它。查询ProgressTrackingActor以了解进度 您可以使用ActorReference指示要查询

我有一个WebAPI无状态服务,它正在创建一个参与者,该参与者通过提醒(触发并忘记)执行一些长时间运行的处理。它将自己的进度存储在本地状态中。由于Actor的单线程特性,我无法获取长时间运行的进程的进度,对获取进度的方法的任何调用都将等待长时间运行的进程完成。是否有人对此有解决方案(不使用外部数据源)?

您可以创建一个
ProgressTrackingActor
,并定期从现有的
Actor
更新它。查询
ProgressTrackingActor
以了解进度


您可以使用
ActorReference
指示要查询进度的
Actor
,或者使用相同的ActorId值。

如果您只想获取参与者的当前状态,而不必等待参与者锁定,那么您实际上可以使用承载参与者的底层ActorService来查询状态,而不会中断,也不会被长时间运行的参与者方法阻止

托管Actors的ActorService实际上只是一个无状态服务(带有一些提示),您可以使用与任何服务通信相同的方式与它通信—向它添加一个接口并使用它进行通信。这个答案说明了你如何做到这一点

如果你想在你的演员方法的执行过程中获得进步,你可以通过调用