Мы хотели бы создать триггерную систему (триггерный поток), которая будет срабатывать на основе некоторой логики для наших клиентов / арендаторов, работающих под управлением системы (приложение, бот, веб-сайт).Например, если пользователь посетил определенный поток ботов и не нажал ни на что, система должна вызвать последующее уведомление после 15 минут бездействия.
Вещи, которые меняются:
- Время ожидания выполнения условия настраивается для каждого потока запуска (15 минут, 50 минут, 10 минут).
- Для каждого арендатора будет настроено более одного потока запуска.
- Новые пользователи назначаются каждый день, и поэтому система должна иметь возможность масштабирования для проверки всех (10 новых пользователей в день)
Мы используем c # и Asp.netМы размещали наши проекты в облаке и думали о том, чтобы иметь функцию Azure, которая будет срабатывать каждую минуту и проверять каждый триггер, выполняя запросы к базе данных (вычисляя время с момента последнего действия и выполняя некоторую динамическую логику) и отправляя уведомление, еслиусловия совпадают.
Но мы не думаем, что эта архитектура будет масштабироваться так, как если бы у нас было 50 триггеров и 400 000 пользователей, тогда мы будем запрашивать базу данных 50 раз в минуту, чтобы выполнить проверки для всех пользователей, и мы думаем, что это излишнеБаза данных
Любые другие идеи.