【问题标题】:How to make a ServiceFabric actor go off in the far future如何让 ServiceFabric 演员在遥远的未来消失
【发布时间】:2017-10-06 19:56:38
【问题描述】:

所以如果我有一个演员并且我使用以下行:

await RegisterReminderAsync("My Reminder", new byte[0], 
    TimeSpan.FromDays(30), TimeSpan.FromSeconds(60)).ConfigureAwait(false);

我可以设置一个在 30 天后关闭的提醒,时间为 60 秒。但是,如果我尝试设置在 60 天内关闭的提醒,则会引发异常,因为 RegisterReminderAsync 将到期数据转换为毫秒为无符号整数 (uint),它只能保存大约 50 天。那么,如果我想设置未来一年的提醒呢?还是 10 年?

我可以将提醒设置为在调用旧提醒时填充新提醒,从而允许我无限期延长期限,但这似乎很脏,不是我们可以使用的最佳实现。有没有办法指定方法应该如何处理到期日?

【问题讨论】:

    标签: c# actor azure-service-fabric integer-overflow


    【解决方案1】:

    是的,这就是它今天的工作方式,但我打开了一个使用 int64 的问题:https://github.com/Azure/service-fabric-services-and-actors-dotnet/issues/13

    【讨论】:

    • 那太好了!然后我们可以设定未来 5.84 亿年的时间(无论如何假设 uint64s)。当然,一旦 Y584M 接近,我们将不得不担心环绕,所以最好不要在其中放置太多库存;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    相关资源
    最近更新 更多