Володя

Володя

С нами с 18 декабря 2012; Место в рейтинге пользователей: #4
Володя
21 февраля 2024, 10:46
0
С репозитория не получилось ее скачать, потом локально пробовал поставил, там менюшка не создалась.
Ну ясно надо править под 3ку. Надо править билдер, надо причесать код и тд и тп. Кто его сейчас поддерживает хз, у Николая он в архиве и вряд ли ему это интересно. Ну как то так…
Володя
21 февраля 2024, 10:32
0
`Носите` с удовольствием! Рад что тебе понравилось.)
Володя
19 февраля 2024, 19:48
0
А если перейти на modSessionHandler ошибки так же появляются?
Володя
14 февраля 2024, 11:05
+1
Все верно, но никто же не застрахован что в какой то момент времени твой сайт не подвергнется скажем атаке ботов и запрос без лимита будет вызывать задержки при работе сайте.
пока идет запрос удаления новый пользователь не получит новый идентификатор сессии, уже действующий пользователь тоже словит задержку и будет нервно курить и в итоге закроет сайт.

Так вот чтобы не было тормозов я и решил ввести limit, нам же не принципиально очистить таблицу за один проход.

А в smartSessions медленная работа, думается, обусловлена LIKE поиском по колонке user_agent во время очистки и отсутствием индекса))) нужно добавить
да, это ускорит удаление, но не сильно, в случае с большим кол-ом данных думаю будут те же тормоза что я описал выше.
Володя
13 февраля 2024, 21:14
+5
Отписываюсь по тестированию, тестировал
— на modhost.pro/ на тарифе разработка, сгенерировал 500 000 записей уникальных сессий с 70% ботов.
— выделенный сгенерировал 2 000 000 записей уникальных сессий с 70% ботов.

Далее по тексту режим:

standart — стандартный запрос на удаление что используется в modSessionHandler
$this->modx->removeCollection(Session::class, [
    'access:<' => time() - $this->gcMaxLifetime
]);

ext — запрос на удаление что используется в ExtSessionHandler

Сразу стало заметно тормоза:
Session cleanup time for mode «standart»: 0.0150 s
Session cleanup time for mode «ext»: 3.3543 s

Был один запрос с несколькими условиями github.com/vgrish/ExtSession/blob/490dfc4a7a8f1d1dd18a988573f5b607fadc457c/core/components/extsession/src/ExtSessionHandler.php#L180-L204

Разбил на несколько, стало чуть получше но все равно не то.
Добавил общий индекс на 3 колонки github.com/vgrish/ExtSession/blob/8223ff63e5574b8697fcf0eb66e55c93eaba7fd6/core/components/extsession/schema/extsession.mysql.schema.xml#L36-L40

Session cleanup time for mode «ext»: 1.3543 s — Тоже не фонтан.

Перекинул колонки github.com/vgrish/ExtSession/blob/8223ff63e5574b8697fcf0eb66e55c93eaba7fd6/core/components/extsession/schema/extsession.mysql.schema.xml#L8-L10 перед колонкой data

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

И вот тут уже стало совсем хорошо
Session cleanup time for mode «ext»: 0.0029 s

Так что с помощью тестов удалось найти слабое место и исправить ситуацию. LIMIT Подбирается опытным путем в зависимости от посещаемости сайта и мощности сервера. По умолчанию использовал 5000.
Володя
12 февраля 2024, 19:52
0
Добрый вечер. Нет, тестирования под нагрузкой не проводилось. С удовольствием поучавствую в тестировании — обращайтесь.
Потому что на smartSessions при сроке жизнь 1 месяц, и большом количестве посещений (около полумиллиона юзеров в месяц) —
В каком месте тормозило?
Володя
08 февраля 2024, 10:17
+1
Инсталлятор пакета поправлен — теперь должен корректно устанавливаться у всех.
Володя
08 февраля 2024, 09:39
+1
Да пожалуйста. Будьте внимательней при написании кода и вопров будет меньше.
Володя
08 февраля 2024, 09:07
+2
Володя
08 февраля 2024, 07:13
+1
Руками создайте способ оплаты.
Володя
08 февраля 2024, 06:54
+1
Выражение в select должно быть корректной json строкой.
Володя
03 февраля 2024, 09:44
0
в конце своего кода добавь
$modx->log(1,  print_r(count($resources) ,1));
запусти код и после посмотри в журнале ошибок modx если вывод кол-ва ресурсов?
Если нет — то целиком весь используемый код выкладывай.
Володя
01 февраля 2024, 22:15
0
Уточните у поддержки тинькоф есть ли данная возможность? Если есть значит можно сделать.
Сейчас стоит Юкасса, тоже Ваш компонент. Не нашли там такой возможности.
А настройка
payment_return_id это не оно?
Володя
01 февраля 2024, 21:38
0
Добрый вечер. Напишите в ТП — посмотрю что можно сделать. Спасибо.
Володя
31 января 2024, 14:11
+1
написать в ТП.
Володя
31 января 2024, 14:10
0
Не тестировал, на сервере должна стоять версия imagick с поддержкой heic.
Вероятно тогда можно попробовать чтоб заработало.
Володя
29 января 2024, 12:28
+1
А для фронта задать параметры для Cropper нельзя?
можно только указать настройки кроппера по дефолту в виде json
&cropper=`{ "aspectRatio":3,"minCropBoxWidth":395,"minCropBoxHeight":198 }`