Jump to content

Если счетчик просмотров тем не обновляется

Featured Replies

Posted
comment_125456

Система кеширования просмотров устроена так: раз в 5 минут запускается задача viewupdates, которая из таблицы core_view_updates разносит просмотры по соотв. местам (темы, объявления, реклама и т.д.)

У меня получилось так, что просмотров добавляется очень много и задача viewupdates не успевает перенести все просмотры в базу запускаясь раз в 5 минут. В итоге просмотры копятся и новые темы вообще не обновляются (т.к. сортировка по умолчанию по возрастанию id).

В итоге поменял сортировку в файле applications/core/tasks/viewupdates.php

строку

				$result = \IPS\Db::i()->select( 'classname, id, COUNT(*) AS count', 'core_view_updates', NULL, NULL, 20, array( 'classname', 'id' ) );

поменять на

				$result = \IPS\Db::i()->select( 'classname, id, COUNT(*) AS count', 'core_view_updates', NULL, '`id` DESC', 20, array( 'classname', 'id' ) );

чтобы первыми обновлялись новые темы.

И изменил время запуска задачи на каждую минуту.

Это помогло конечно, но такой костыль не самое лучшее решение т.к. при увеличении нагрузки просмотры снова начнут накапливаться.

Как быть? Увеличивать время выполнения задачи? Ускорять процесс переноса? Почему-то всего 200-250 записей успевает раскидать по местам из таблицы core_view_updates за один цикл запуска задачи. Это очень мало.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.