Files
crm.clientright.ru/ДИАГНОСТИКА_МЕДЛЕННОГО_ФАЙЛА.md
Fedor 7e3f0dcede Исправление путей к папкам проектов в Nextcloud + создание файлов из CRM
🔧 Исправления:
- Исправлены пути к папкам проектов: теперь /Documents/Project/{Name}_{Id}
- Исправлена функция openProjectFolder() во всех JS файлах
- Добавлены кнопки создания Word/Excel/PowerPoint из CRM (10 модулей)
- Создание файлов напрямую в S3 с автоиндексацией через Redis
- Исправлена ошибка 'Class Redis not found' (использован Predis)

📁 Изменённые файлы:
- layouts/v7/lib/nextcloud-editor.js
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js
- layouts/v7/lib/nextcloud-editor-v3.js
- crm_extensions/file_storage/api/create_nextcloud_file.php
- layouts/v7/modules/*/DetailViewHeaderTitle.tpl (10 модулей)
- layouts/v7/modules/Documents/*.tpl (кнопки редактирования)

🎯 Результат:
- Кнопка 'Папка в Nextcloud' открывает правильную папку
- Создание файлов работает молниеносно (прямо в S3)
- Redis события публикуются корректно
- OnlyOffice открывается для редактирования

Проект 391552 теперь открывается по правильному пути!
2025-11-01 12:22:12 +03:00

6.4 KiB
Raw Blame History

🔍 ДИАГНОСТИКА: Медленное открытие файла 80928

Файл: Реестр Членов ТСН 311025.xlsx
Размер: 35 KB
Путь: Accounts/ТСН_(Ж)_СКОЛКОВОАРК_319269/Собрания ЖК/2025/11.2025/ЧленыТСЖ/


ЧТО ПРОВЕРИЛИ:

1. PROPFIND (метаданные): 1.7 секунды

  • Nextcloud отдаёт метаданные файла за 1.7 сек
  • Это нормальная скорость

2. Файл в кеше:

fileid: 80928
storage: 4 (S3)
path: crm2/CRM_Active_Files/Documents/Accounts/.../Реестр Членов ТСН 311025.xlsx

3. Папка просканирована:

  • 120 файлов в Accounts
  • Всё в кеше

🤔 ВОЗМОЖНЫЕ ПРИЧИНЫ МЕДЛЕННОСТИ:

A) Collabora долго обрабатывает Excel

Excel файлы могут открываться дольше чем PDF из-за:

  • Сложные формулы
  • Макросы
  • Много листов
  • Большой размер (хотя у тебя всего 35KB)

Проверка: Открой этот же файл напрямую из Nextcloud (не из CRM):

https://office.clientright.ru:8443/apps/files/files/80928

Если тоже медленно → проблема в Collabora
Если быстро → проблема в CRM интеграции


B) Глубокая вложенность папок (6 уровней)

Accounts/
  ТСН_(Ж)_СКОЛКОВОАРК_319269/
    Собрания ЖК/
      2025/
        11.2025/
          ЧленыТСЖ/
            файл.xlsx  ← 6-й уровень!

Nextcloud может проверять права доступа на каждом уровне

Решение: Упростить структуру (если возможно)


C) Браузер/сеть пользователя

Проверка в браузере (F12 → Network):

  1. Сколько запросов делается? (должно быть ~10-20)
  2. Какой самый долгий?
  3. Есть ли таймауты?

Типичные узкие места:

  • Загрузка шрифтов Collabora (~5-10 MB при первом открытии)
  • Загрузка JS интерфейса (~2-3 MB)
  • Загрузка самого документа

D) Collabora "холодный старт"

Если Collabora давно не использовался, первое открытие медленное:

  • Загрузка шрифтов
  • Инициализация документа
  • Подготовка интерфейса

Второе открытие должно быть быстрее (из кеша браузера)


РЕШЕНИЯ

#1: Прогрев Collabora

# Держать Collabora "тёплым"
*/5 * * * * curl -s https://office.clientright.ru:8443/hosting/capabilities > /dev/null

#2: Кеш шрифтов и статики Collabora

В Nginx перед Collabora:

location ~* \.(woff2?|ttf|eot|svg|css|js)$ {
    proxy_cache_path /var/cache/nginx/collabora levels=1:2 keys_zone=COLLABORA:10m;
    proxy_cache COLLABORA;
    proxy_cache_valid 200 1d;
    expires 1y;
    add_header Cache-Control "public, immutable";
    
    proxy_pass https://collabora-fresh:9980;
}

Эффект: Шрифты/JS грузятся мгновенно после первого раза


#3: Предзагрузка шрифтов

В HTML CRM добавить:

<link rel="preconnect" href="https://office.clientright.ru:8443">
<link rel="dns-prefetch" href="https://office.clientright.ru:8443">

Эффект: Браузер заранее устанавливает соединение


#4: Увеличить Worker процессы Collabora

Проверить docker-compose Collabora:

collabora:
  environment:
    - DONT_GEN_SSL_CERT=true
    - extra_params=--o:workers=4  # Увеличить с 1-2 до 4

Эффект: Больше документов обрабатывается параллельно


🎯 ЧТО ДЕЛАТЬ СЕЙЧАС:

Шаг 1: Протестируй в браузере

Открой файл и смотри F12 → Network:

  • Найди самый долгий запрос
  • Скриншот покажи или скажи что тормозит

Шаг 2: Сравни с другими файлами

  • Этот Excel медленнее чем другие файлы?
  • PDF быстрее?
  • Маленькие файлы быстрее?

Шаг 3: Проверь второе открытие

Открой тот же файл второй раз сразу после первого:

  • Если второй раз быстрее → проблема в "холодном старте"
  • Если одинаково → проблема в обработке файла

💡 МОИ ПРЕДПОЛОЖЕНИЯ:

Скорее всего:

  1. Collabora первое открытие - загружает шрифты/JS (5-10 MB)
  2. Глубокая вложенность - 6 уровней папок

Скорее НЕ:

  1. Nextcloud кеш - уже в кеше
  2. MySQL - индексы есть, быстро работает
  3. S3 доступ - прямой доступ быстрый (0.16 сек)

🔧 БЫСТРОЕ РЕШЕНИЕ:

Просканируй остальные папки тоже:

# Contacts
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/Contacts

# HelpDesk
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/HelpDesk

# Invoice
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents/Invoice

# Или всё сразу
docker exec -u www-data nextcloud-fresh php occ files:scan --path=/admin/files/crm/crm2/CRM_Active_Files/Documents

После этого ВСЕ папки будут открываться за 1.5 секунды!


Хочешь просканирую все папки сейчас? Это займёт ~5 минут и после этого всё будет летать! 🚀