Пересчет рейтинга публикаций после удаления пользователей

InstantCMS 2.X

При удалении пользователя у публикации, которые он оценил рейтинг рассчитывается с учетом его оценок

#1 10 февраля 2021 в 19:50
Сайт на движке InstantCMS v2.10.1.
Есть такой глюк. При удалении пользователя с сайта (совсем со всеми материалами, полное удаление из админки), у публикаций, которые этот пользователь успел оценить, не пересчитывается рейтинг. То есть оценка в рейтинге публикаций выводится так словно, оценки пользователя остались, хот по факту их нет. Пример
Нужно сделать задачу в планировщике, которая будет раз в сутки пересчитывать оценки всех публикаций, блогов итд и считать правильную оценку. Важно, чтобы эта задача не вешала сервер до ошибки 503.

Если есть другой путь решения проблемы, можем поступить по вашему.
Прикрепленный файл
_1sdst.png 88 Кб
#2 10 февраля 2021 в 20:56
При небольшом количестве записей такой вариант может быть и сработал, но при большом количестве записей тормоза будут очевидны пользователям и в итоге может приводить к 503 ошибке.

Как вариант, возможно рассмотреть пересчет когда кто-то изменяет рейтинг у самой записи
Плюсы: Минимум нагрузки на железо
Минусы: Реальный рейтинг может немного отличаться от обозначенного до очередного "голосования". Чем "старше" запись, тем она дольше будет "врать".

Или второй вариант — пересчитывать рейтинг раз в день при просмотре записи.
Плюсы: Реальный рейтинг может немного отличаться от обозначенного до "утра". Чем "старше" запись, тем она реже будет пересчитываться.
Минусы: Первый раз в день запись будет дольше открываться.
#3 10 февраля 2021 в 23:41


Или второй вариант — пересчитывать рейтинг раз в день при просмотре записи.
Плюсы: Реальный рейтинг может немного отличаться от обозначенного до "утра". Чем "старше" запись, тем она реже будет пересчитываться.
Минусы: Первый раз в день запись будет дольше открываться.

Loadырь

Вот этот вариант вполне подходит. Это большая нагрузка? Сколько возьмете за реализацию?
#4 11 февраля 2021 в 07:20

пересчитывать рейтинг раз в день при просмотре записи

я бы добавил "при просмотре пользователем". Чтобы не пугать тормозами поисковики и т.п.
#5 20 февраля 2021 в 16:03


пересчитывать рейтинг раз в день при просмотре записи

я бы добавил "при просмотре пользователем". Чтобы не пугать тормозами поисковики и т.п.

Zau4man
Вы бы взялись за эту задачу? За какую сумму?
#6 20 февраля 2021 в 18:01
@litclubbs, а Лоадырь отказался?
Я пока занят.
#7 20 февраля 2021 в 18:23

а Лоадырь отказался?

Zau4man
Не предлагали, но отказался ))). Тоже занят. Ещё не все свои компоненты обновил ((
#8 26 февраля 2021 в 14:40


а Лоадырь отказался?

Zau4man
Не предлагали, но отказался ))). Тоже занят. Ещё не все свои компоненты обновил ((

Loadырь

Вообще-то предлагал, но вы не ответили. Теперь понятно, что заняты
#9 26 февраля 2021 в 20:34

Вообще-то предлагал, но вы не ответили.

@litclubbs
Действительно, не заметил. Но в любом случае я тут накидал лишь возможные варианты, а не предлагал себя в роли исполнителя.
Есть ещё вариант, когда удаляется юзер получить id всех записей, в которых он "наследил" и сохранить их. Потом по крону (ночью в полнолуние, когда расцветает папоротник или в ночь на Ивана Купалу) запустить пересчет только этих записей, а не всех и не каждый день. Причем если удалили двух и более юзеров, то объединять эти id, чтобы дважды не пересчитывать рейтинг одной записи.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.