如何解决在 azure 服务结构中的有状态服务上运行预定的后台作业,以按计划时间更新 Reliable Dictionary 中的一些数据
是否可以在 azure 服务结构中对有状态服务运行预定的后台作业?我发现的唯一方法是计时器和提醒,它们在 Actors 而非有状态服务上运行。我正在尝试运行预定的后台作业来清理 Reliable 字典中的一些数据。
解决方法
在 Service Fabric 中运行后台作业的推荐方法是简单地覆盖 RunAsync
操作。这对于有状态和无状态服务同样适用 - 尽管如前所述,Actors
提供了一些额外的功能,内置了对提醒和计时器的支持。
下面是一个非常基本的例子
public async Task RunAsync(CancellationToken cancellationToken)
{
// do something
var nextWakeup = TimeSpan.FromHours(1);
await Task.Delay(nextWakeup,cancellationToken);
}
如果您需要更复杂的东西,例如,您可以增强上述功能以使用 IReliableStateManager
来管理您自己的提醒集合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。