Я не видел такой ситуации, как у меня, так что вот:
Основные моменты сценария: пользователю нужна система, включающая настраиваемые SMS-оповещения. Компонент функциональности должен иметь способ идентифицировать запуск на основе пользовательского ввода, а затем отправлять SMS с персонализированным сообщением в соответствии с предварительно определенным интервалом после запуска. Я никогда раньше не использовал Twilio и занимаюсь реализацией.
Решение первого прохода. Используя учетную запись Twilio, я назначил файл .aspx, который будет получать входящие триггерные оповещения/SMS через GET. Принимающая страница объявляет и создает экземпляр моего объекта SMSAlerter при загрузке страницы, который немедленно отвечает первым SMS и запускает System.Timer.Timer. Элементарно и функционально до точки.
Проблема: Предупреждения продолжают отправляться, если интервал для таймера является коротким промежутком времени. Я проверил это с минутным интервалом и был успешным. Когда я зашел на 10 минут, сразу же отправляется смс и через 10 минут отправляется первое сообщение, но ничего после этого.
Мое наблюдение: поскольку взаимодействие с ресурсом после входящего текста отсутствует, время ожидания сеанса истекает, если оставить значение по умолчанию 20 минут. Увеличение тайм-аута сеанса не работает, и даже если бы оно и работало, это не кажется правильным, поскольку интервал будет порядка часов, а не минут.
Использование кеша для хранения каждого нового SMSAlerter может быть правильным решением. Для любого создаваемого SMSAlerter расписание используется примерно 12 часов и заменяется новым объектом SMSAlerter, когда тот же пользователь уведомляет систему на следующий день. Есть ли способ лучше? Я слишком/недостаточно упрощаю? Сейчас я не ожидаю интенсивного трафика (десятки пользователей), но пользователь мыслит масштабно.
Спасибо за комментарии, предложения. Я не включал код, потому что вопрос касается дизайна, а не синтаксиса.