@maxyc_webber
Web-программист

Нужен совет как считать много сущностей как можно чаще?

Задача следующая.

Есть набор сущностей - Задача.
Есть множество ролей пользователей.
Есть несколько счетчиков, которые считают определенную область задач.

Надо считать с наименьшим лагом.

Не могу использовать такие умные слова, как мемкеш, редис и пр.
php 5.4 - 5.6

Теперь подробнее.
есть 100500 пользователей. У них есть 100500 задач. У задач есть статусы и дедлайны.
есть несколько видов счетчиков - без дедлайна, просрочен, почти просрочен, не просмотрен, ждет контроля.
Надо как то это считать.

есть несколько мыслей.
1. на каждом хите пересчитывать все счетчики. Для большого кол-ва сущностей и пользователей это будет мягко сказать тяжело. Даже если буду кешировать это минут на 5.

2. при любом изменении определенных полей сущности пересчитывать от 2 до 11 счетчиков для каждого пользователя, участвующего в задаче. а там от 2 и более может быть. Тоже как то не особо просто получается.

3. инкрементный счет. в случае если что то пойдет не так, все счетчики рушатся и только полный сброс им поможет.

Счетчики можно разделить на две категории, статические и динамические (по отношению ко времени)
1. Статические - можно изменять по триггеру КРУД изменения сущности.
1.1. Не просмотрены
1.2. Просрочены
1.3. Почти просрочены
1.4. ждет контроля
1.5. без дедлайна

2. Динамические - нужно постоянно пересчитывать. как можно чаще.
2.1. просрочены
2.2. почти просрочены

Ко всему прочему, у нас есть еще Проекты, в которых находятся сущности.
Нам нужно собирать счетчики и в разрезе проекта.

не могу решить как сделать и по какому пути пойти.
были ли у вас похожие задачи?
  • Вопрос задан
  • 831 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы