Напоминания о сервисной структуре — время, оставшееся до запуска

#c# #asp.net #azure-service-fabric

#c# #asp.net #azure-service-fabric

Вопрос:

Предположим, у меня есть напоминание о структуре служб, которое я зарегистрировал с помощью метода OnActivateAsync. Теперь для этих напоминаний о сервисной структуре с помощью метода GetReminder я могу проверить, существует ли напоминание уже или нет. Но могу ли я проверить, когда это напоминание планируется запустить следующим?

Например, я зарегистрировал напоминание с периодом 4 часа, и оно сработало в 2 часа дня (запланируйте запуск следующего в 6 вечера). Теперь в 3:30 вечера некоторые из моих других служб хотят знать, когда запланировано следующее напоминание. Я могу получить это напоминание с помощью метода GetReminder, но я не могу получить время, оставшееся для его следующего выполнения.

Следуя этому документу — таймеры и напоминания участников

Ответ №1:

Используйте дату выполнения напоминания. Добавляйте периоды, пока результат меньше текущего времени. В первый раз, когда оно больше, разница заключается в времени, оставшемся до следующего запуска.

Комментарии:

1. Спасибо за ответ @LoekD. Поправьте меня, если я ошибаюсь, насколько мне известно, dueTime хранит время, оставшееся для выполнения напоминания, а не время, когда напоминание было выполнено первым. Предположим, я задал dueTime как «TimeSpan.Zero», тогда он сохранит 0 во всех своих значениях, а не текущее время. Верно?

2. из документации : dueTime: возвращает время, когда напоминание должно быть вызвано первым. Значение минус одна (-1) миллисекунда означает, что напоминание не вызывается. Значение, равное нулю (0), означает, что напоминание вызывается сразу после регистрации.