сервиса при наличии галки "автоматическое продление"
делать джобы которые будут висеть неделю/месяц - ну как то сомнительно. + сняли галку "продление" - нужно и джобу удалять. а за минуту эту галку можно 60 раз переключить.
делать шедул который будет чекать раз в минуту какую то таблицу и по ней уже определяться что делать? но хотелось бы добиться времени реакции в районе +/- секунда, а дергать каждую секунду базу не нравится...
брать данные на ближайший час, складывать в редис, и редис уже дергать каждую секунду? так тут нужно еще и консистентность данных держать...
вобщем поделитесь мыслями?)
требования к "списание с точностью до секунды" - это жёстко прописано или просто желание? Потому что шедулер, раз в минуту дёргающий базу, выглядит самым естественныи решением
это "крайне желательно". тоесть "если уж совсем никак то ок"
А зачем джобы на каждого юзера? В момент списания смотреть у кого галочка стоит и у тех списывать, пусть щёлкают сколько угодно
допустим у нас в эту минуту продлеваются 834 юзера. так совпало. на 2 юзере произошел сбой (не важно почему, допустим база "моргнула") первый юзер обновился, 833 юзера не обновились. и не обновятся уже
Ну это детали реализации
Ставить на всех юзеров джобы списания, и всё Если кто-то снимет галку после, то уже не важно, на момент списания галка была
ну допустим, забыли про джобы. есть шедул который раз в минуту дергается. есть 30 пользователей которых нужно "продлить" с желательной точностью "до секунды". как это сделать шедулом?
Обсуждают сегодня