ну нет, инерцию имеет как раз твой алгоритм: из-за запуска "по расписанию" может получиться так, что все условия для ачивки выполнены - а ачивки нет час, нет два, нет три... топик с жалобой, флуд, срач.
хотя, конечно, можно прогонять твой алгоритм каждые десять минут - для всех пользователей, для всех их постов... и каждые десять минут джой будет немножечко капельку незаметно лагать)
.
кстати, твоё "пересчитывать только для тех, кто запостил новые посты с момента последнего пересчета" - это несколько... нечистоплотно. с таким подходом получить + в копилку сможет только тот, кто вообще постит: человек запостил нужное число картинок, его посчитали - не прошел; через пару дней посты набрали нужный рейтинг - а ачивку не дают, потому что новых постов не было, и уже сделанные посты не считаются.
.
ещё, ты совершенно не рассматриваешь ситуацию с минусованием постов: по твоему "и готово" запросто может получиться так, что пользователь с тысячей перешедших через заявленный барьер постов не сможет получить ачивку за 50 постов, если все его посты будут минуситься после преодоления барьера.
.
и ты не учёл того самого "изменения правил получения ачивки": в твоём случае при этом изменении можно потерять уже полученную ачивку, что совсем не хорошо.
.
в моем варианте инерция отсутствует как таковая: реакция следует сразу же, как только выполнено условие. ошибка алгоритма - это из серии "у меня компьютер сам сломался, загорелся и утонул". любое изменение правил выдачи ачивок тут же идёт в работу просто потому, что они используются напрямую в реальном времени; однако уже полученные ачивки исчезнуть от такого изменения не могут.
.
ну и таки по списку:
1. список допустимых тегов - зе хоррор - абсолютно аналогичен списку подписок/блоков тегов.
2. список постов хранится на сервере, что с системой ачивок, что без. метка "пост идёт в зачет" хранится не в отдельном списке, а прилеплена к каждому посту.
3. счётчики идущих в зачет постов, равно как и счётчики сделанных постов/комментариев, хранятся снова на сервере в профиле пользователя.
4. абсолютно тот же подход, что и с ростом кармы: на любой плюс/минус запускается формула пересчета.
.
и... пардон, наверное, за ядовитость. тяжелый день.
она смотрит на розовые лепестки. она скучает по Пинки.
.
8200x8000, три метра...
хотя, конечно, можно прогонять твой алгоритм каждые десять минут - для всех пользователей, для всех их постов... и каждые десять минут джой будет немножечко капельку незаметно лагать)
.
кстати, твоё "пересчитывать только для тех, кто запостил новые посты с момента последнего пересчета" - это несколько... нечистоплотно. с таким подходом получить + в копилку сможет только тот, кто вообще постит: человек запостил нужное число картинок, его посчитали - не прошел; через пару дней посты набрали нужный рейтинг - а ачивку не дают, потому что новых постов не было, и уже сделанные посты не считаются.
.
ещё, ты совершенно не рассматриваешь ситуацию с минусованием постов: по твоему "и готово" запросто может получиться так, что пользователь с тысячей перешедших через заявленный барьер постов не сможет получить ачивку за 50 постов, если все его посты будут минуситься после преодоления барьера.
.
и ты не учёл того самого "изменения правил получения ачивки": в твоём случае при этом изменении можно потерять уже полученную ачивку, что совсем не хорошо.
.
в моем варианте инерция отсутствует как таковая: реакция следует сразу же, как только выполнено условие. ошибка алгоритма - это из серии "у меня компьютер сам сломался, загорелся и утонул". любое изменение правил выдачи ачивок тут же идёт в работу просто потому, что они используются напрямую в реальном времени; однако уже полученные ачивки исчезнуть от такого изменения не могут.
.
ну и таки по списку:
1. список допустимых тегов - зе хоррор - абсолютно аналогичен списку подписок/блоков тегов.
2. список постов хранится на сервере, что с системой ачивок, что без. метка "пост идёт в зачет" хранится не в отдельном списке, а прилеплена к каждому посту.
3. счётчики идущих в зачет постов, равно как и счётчики сделанных постов/комментариев, хранятся
снова на серверев профиле пользователя.4. абсолютно тот же подход, что и с ростом кармы: на любой плюс/минус запускается формула пересчета.
.
и... пардон, наверное, за ядовитость. тяжелый день.