2017-05-08 4 views
3

Also, wenn ich einen Schauspieler und ich verwende die folgende Zeile:Wie ein ServiceFabric Schauspieler machen in der fernen Zukunft geht

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

ich eine Erinnerung einstellen, kann in 30 Tagen zu gehen, mit einer Periode von 60 Sekunden. Wenn ich versuche, eine Erinnerung einzurichten, die in 60 Tagen ausgelöst wird, wird jedoch eine Ausnahme ausgelöst, da RegisterReminderAsync die fälligen Daten in Millisekunden als vorzeichenlose Ganzzahl (uint) konvertiert, die nur etwa 50 Tage dauern kann. Was also, wenn ich in Zukunft ein Jahr lang daran erinnern möchte? Oder 10 Jahre?

Ich könnte die Erinnerung einrichten, um eine neue Erinnerung zu füllen, wenn die alte Erinnerung aufgerufen wird, wodurch ich den Zeitraum unendlich erweitern kann, aber das scheint schmutzig und nicht die beste Implementierung, die wir verwenden könnten. Gibt es eine Möglichkeit anzugeben, wie die Methode das Fälligkeitsdatum behandeln soll?

Antwort

1

Yup, das ist, wie es heute funktioniert, aber ich öffnete ein Problem int64 stattdessen zu verwenden: https://github.com/Azure/service-fabric-services-and-actors-dotnet/issues/13

+0

Das wäre toll! Wir könnten dann Zeiten für 584 Millionen Jahre in der Zukunft setzen (unter der Annahme, dass es sowieso Uint64s gibt). Natürlich, sobald sich Y584M nähert, müssen wir uns um den Umbruch kümmern, also sollten wir nicht zu viel Vorrat darauf legen;) – Woody1193

Verwandte Themen