slimer Опубликовано 21 марта, 2017 Поделиться Опубликовано 21 марта, 2017 Система кеширования просмотров устроена так: раз в 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 за один цикл запуска задачи. Это очень мало. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.