если кешировать раз в сутки нужно или механизм согласования кэша с базой делать или на эти сутки блокировать смену статуса подписки у юзера. запретить юзеру снимать автопродление с услуги на целые сутки - немного недружественно
Ну типа да, простой вариант лочить на минуту и раз в минуту продлевать всех на следующей минуте Сложнее ставить всех на минуту в очередь и в точные секунды проверять ещё раз галку
в целом индекс на время, выгребаем по условию времени. не такая большая нагрузка должна быть. записей в базу тоже не так много, так что лишний индекс не сильно помешает. единственное что кэшпул будет забиваться левыми данными... но они вроде разовые и должны будут улетать с кэша быстро. да и не так много тех данных чтобы заботиться об их наличии в кэш пуле базы
у нас есть 100 юзеров которые должны обновиться сегодня. мы их выкинули в редиску. через 40 минут 2 юзера решили что тоже хотят автообновление все таки включить. но они в редис уже не попали