Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
20 февраля 2024, 10:36
0
Привет, ну да, верно написал Николай, ошибка из-за того, что один запрос еще не завершен, а система отправляет второй. Посещаемость большая? Ошибка частая или разок проскочила?
Я, когда руки дойдут до smartSessions, попробую оптимизировать компонент, может побыстрее будет работать.
Наумов Алексей
16 февраля 2024, 15:41
0
Смотрим стандартный htaccess (если сервер apache, конечно).

Видим, что все запросы направляются на index.php.

Меняем на myscript.php, делаем чё хотим.
Делаем include index.php

Получили:
Хотелось бы сделать так, чтобы все команды в PHP файле выполнялись до всех инициализаций в MODX.
Наумов Алексей
14 февраля 2024, 11:32
+1
Уберите Fenom синтаксис из значения параметра pageLinkScheme, напишите как в доке.

Значение параметра не обрабатывается парсером, а просто заменяются плейсхолдеры.
Наумов Алексей
14 февраля 2024, 10:53
+1
Чуть может не понял, но приведу рассуждения. Поправь, если я не прав.

Рассматриваю ситуацию, когда базе у тебя 2 000 000 сессий, из них 1 400 000 (70%) — эт боты.
Т.е. симулируется картина, что либо сессии продолжительное время вообще не очищались и накопились, либо у сайта ну очень высокая посещаемость.

В первом случае, если мы поставим limit 5000, то эти сессии удалятся за 280 подходов. Ну а далее у нас будет регулярно все это работать и 2 млн сессий в базе уже не будет. По идее мы должны так сконфигурировать сервер, чтобы каждый раз при срабатывании gc() устаревало не более 5000 сессий, иначе они начнут накапливаться.

Во втором случае (если бешеная посещаемость), хватит ли лимита в 5000 для того, чтобы удалить старые сессии? А если нет — то мы должны повысить лимит.

И у меня возник вопрос: какая разница в обоих случаях, есть лимит или нет? Кроме первых 280 проходов, которые без лимит выполнились за 1 раз (напомню в нестандартной ситуации, что сессии ранее не очищались).

p.s. про smartSessions:
А в smartSessions медленная работа, думается, обусловлена LIKE поиском по колонке user_agent во время очистки и отсутствием индекса))) нужно добавить. Я когда это писал все — тормозов особо не заметил, посещаемость сайтов моих была ну до 1000 человек в сутки. Но вообще, поле is_bot реально лучше, ибо в этом случае LIKE поиск убирается, остается просто быстрый поиск по колонке tinyint. В общем если руки дойдут — изменю алгоритм.
Наумов Алексей
12 февраля 2024, 20:36
+1
Просто юзеров или зарегистрированных?

На сколько строк таблица сессий набивалась?.. интересно прост :) Я точно не тестировал на объемы, у меня крутиться на сайтах с посещаемостью до 5000 в сутки — это 150 тыс. посетителей в месяц…
Ну и вообще, по поди какой-нибудь индекс нужно добавить или выборку улучшить, наверняка 1 узкое место
Наумов Алексей
09 февраля 2024, 23:01
0
Версия php?..

Там используется github.com/serbanghita/Mobile-Detect, который в последнем релизе php 8 просит…
Наумов Алексей
09 февраля 2024, 22:54
0
Если ты работаешь с miniShop2 и его галереей (я сделал этот вывод, основываясь на том, что речь идет о сниппете mFilter2), то стоит посмотреть на таблицу modx_ms2_product_files и колонку properties: в ней хранятся св-ва изображения. Будет не обязательно дергать физический файл на диске, чтобы узнать размер фото.
Наумов Алексей
08 февраля 2024, 10:49
0
Если верно понял, то стоит посмотреть на параметры top и topLevel сниппета pdoField. С его помощью выбрать id корневого раздела и передать в pdoMenu в параметр parents
Наумов Алексей
31 января 2024, 19:35
0
может включили вывод предупреждений и они появились?
Наумов Алексей
31 января 2024, 17:00
0
php 8.3 виноват:
php.watch/versions/8.2/dynamic-properties-deprecated

modx 2.8.x стабильно работает на php 7.4
Наумов Алексей
31 января 2024, 13:22
0
gd простой по своим возможностям.
imagick мощнее
c gd всегда были траблы с разными форматами, прозрачностями, наложением масок и т.п.
Наумов Алексей
31 января 2024, 12:37
0
на сервере imagic стоит? в phpinfo можно посмотреть
Наумов Алексей
31 января 2024, 12:30
0
prepareSnippet стоит, он может поддормаживать
куча tv в фильтре, причем фильтруются как number. Вы же знаете, что tv хранятся в базе в виде строки, и каждый раз при фильтрации они к числу приводятся, что есть медленно

у вас 72 тысячи (!) запросов! есть над чем подумать.
Наумов Алексей
30 января 2024, 21:20
0
Ставить раннюю alpha версию альтернативного компонента фильтрации на боевой сайт — не нужно 100%.
Наумов Алексей
30 января 2024, 21:18
0
Причин может быть множество.
Нужно и структуру каталога посмотреть, и вызов сниппета mFilter2, и чанк для отображения строки с товаром.
После этого изучить формируемый sql запрос, что там… Поставьте debugParser для первичного анализа еще.

На ваш вопрос нет однозначного ответа и волшебной кнопки.
mFilter2 может работать относительно быстро с большим кол-вом товаров, но нужно аккуратно его использовать.
Наумов Алексей
25 января 2024, 14:09
0
Можно попробовать реализовать… запишем.
Рад активному пользователю =)
Наумов Алексей
25 января 2024, 12:19
0
Привет! Ждем, с нетерпением)

Спрошу про валидацию.
Ты пишешь:
валидация предусмотрена как в msCustomer, так и в msOrder
т.е. валидация указывается в вызове сниппета.

Сохраниться ли сценарий, что для разных способов доставки я смогу сделать: через курьерскую службу обязательным полный ФИО + мобильный телефон, а для самовывоза просто Имя (телефон не обязателен).
Пример абстрактный, но суть ясна.

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

Все равно предложу еще раз) есть время и желание помочь, прежде всего с целью ускорить выход альфа версии.
Переживания, что другой человек сделает не так, как видишь ты в голове — понятно. Но всегда можно обсудить список задач и подход к их решению. ;-)
Наумов Алексей
24 января 2024, 12:11
0
похоже на кеширование веб-сервером файлов html
Стоит проверить не включено ли этой в настройках хостинга или в файле htaccess