Задержки отправки.

InstantCMS 2.X
#1 23 февраля 2025 в 21:27

Даже не знаю в какую сторону нырнуть. Как вообще проверяют задержки и кто виноват. Раньше при создании поста отправлялся моментально, теперь задержка секунд 10. 

Где-то с 3-е недели уже так(или больше, где то после обновления на 2.17), 2.17.1(не уверен если стало так именно после обновления, не знаю).  Но по времени где то так и есть

Мне надо выйснить причину этой задержки, но как и где их смотреть?

#2 23 февраля 2025 в 21:42

 pupsik, может быть это связано с вашей недавней темой, где я вам объяснял, что такое очередь отправки сообщений?

Если подписчиков на новые сообщения много, то при добавлении сообщения идёт отправка сообщений всем подписчикам при отключённой очереди сообщений. 

В таком случае отправку сообщений через очередь лучше включить.

Остальные факторы, типа обновление индексов в базе при добавлении новых записей и т.п. тоже влияют, но незначительно.

#3 23 февраля 2025 в 21:53

Да, но на этом сайте что в подписе так-же, там всего я. Не думаю чтоб кто-то там даже на что-то был подписан. 

Включени и выключение этой очереди будет влиять если никто не подписан? Или так же будет задерживать вне зависимости от нужды отправки писем?

В таком случае отправку сообщений через очередь лучше включить.

Zau4man

Она так-же вклключена. Тогда была проблемка я не так КРОН настроил… Теперь там все прекрасно с отправкой емайла. Чему я очень был рад.

Сегодня в 16:16
#4 24 февраля 2025 в 11:22

причину этой задержки, но как и где их смотреть

pupsik

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

Но вы можете в файл github.com/instantsoft/icms2/blob/master/system/controllers/content/actions/item_add.php начиная снизу вверх, пока не доберетесь до github.com/instantsoft/icms2/blob/8a4f07a01e1b6b4fe634b8d9b6c1eeb12affb1b9/system/controllers/content/actions/item_add.php#L59C9-L59C20 писать в строчках что-то типа

  1. dump($item);

Это будет прерывать код. И смотрите, на какой строке пропадет эта большая пауза. Значит «тупит» тот код, что ниже добавленного dump();

Можно по файлу раскидать дампы таймстампов в файл. И смотреть, между какими из них самая большая пауза.

Например так. Добавить в этот файл новый метод типа

  1. private function log($text){
  2. $file = $_SERVER['DOCUMENT_ROOT'] . '/upload/lagi.txt';
  3. $f = fopen($file, 'a+');
  4. fputs($f, '['.time().'] '.$text . "\n");
  5. fclose($f);
  6. }

этот метод будет класть добавленный текст и метку time в файл upload/lagi.txt

И потом по коду накидайте таких логов, типа

  1. $this->log('Где-то тут');

и потом добавляете запись. И смотрите, между какими логами самое большое время проходит. 

Скорее всего, проблема с каким-то из хуков… Их список тоже можно посмотреть в коде этого файла.

Терпения и вы выясните проблему.

#5 24 февраля 2025 в 17:22

system/controllers/content/actions/item_add.php

Zau4man

Ну то что я этот файл 100% не трогал, уже исключает пол беды. Хорошо. Сегодня буду пробовать с дамп. Спасибо. 

getContentProps() — Пока то да се. Вот тут была проблемка. в model.php

Функция count() ожидает массив, и поскольку она получала значение false, она вернула ошибку и остановила выполнение кода.

Это было достигнуто путем инициализации переменной $props пустым массивом ($props = []) в начале функции.

  1. $props = [];

Отправил пару тестовый топиков, задержки пока нет. Буду следить за этим по мере добавления постов.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожее в блогах

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.